Испольнитель добавил контракты

This commit is contained in:
Salikh 2024-04-21 21:20:52 +04:00
parent cf8abbc0f5
commit c2ca90bc09
26 changed files with 483 additions and 12 deletions

View File

@ -0,0 +1,30 @@
using HotelContracts.BindingModels;
using HotelContracts.BusinessLogicsContracts;
using HotelContracts.SearchModels;
using HotelContracts.StoragesContracts;
using HotelContracts.ViewModels;
using HotelDataModels.Models;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelBusinessLogic.BusinessLogic
{
public class ConferenceLogic : IConferenceLogic
{
private readonly ILogger _logger;
private readonly IConferenceStorage _conferenceStorage;
//List<ConferenceViewModel>? ReadList(ConferenceSearchModel? model);
//ConferenceViewModel? ReadElement(ConferenceSearchModel? model);
//bool AddParticipantToConference(ConferenceSearchModel model, IParticipantModel participant);
//bool Create(ConferenceBindingModel model);
//bool Update(ConferenceBindingModel model);
//bool Delete(ConferenceBindingModel model);
}
}

View File

@ -7,7 +7,11 @@
</PropertyGroup>
<ItemGroup>
<Folder Include="BusinessLogic\" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\HotelContracts\HotelContracts.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,22 @@
using HotelDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.BindingModels
{
public class ConferenceBindingModel : IConferenceModel
{
public int Id { get; set; }
public string ConferenceName { get; set; } = string.Empty;
public string Subject { get; set; } = string.Empty;
public int OrganiserId { get; set; }
public Dictionary<int, IParticipantModel> ConferenceParticipants { get; set; } = new();
}
}

View File

@ -0,0 +1,22 @@
using HotelDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.BindingModels
{
public class MealPlanBindingModel : IMealPlanModel
{
public int Id { get; set; }
public string MealPlantName { get; set; } = string.Empty;
public double MealPlanPrice { get; set; }
public int OrganiserId { get; set; }
public Dictionary<int, IParticipantModel> MealPlanParticipants { get; set; } = new();
}
}

View File

@ -0,0 +1,24 @@
using HotelDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.BindingModels
{
public class OrganiserBindingModel : IOrganiserModel
{
public int Id { get; set; }
public string OrganiserLogin { get; set; } = string.Empty;
public string OrganiserPassword { get; set; } = string.Empty;
public string OrganiserEmail { get; set; } = string.Empty;
public string OrganiserNumber { get; set; } = string.Empty;
public string OrganiserFIO { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,20 @@
using HotelDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.BindingModels
{
public class ParticipantBindingModel : IParticipantModel
{
public int Id { get; set; }
public string FIO { get; set; } = string.Empty;
public string Number { get; set; } = string.Empty;
public int OrganiserId { get; set; }
}
}

View File

@ -0,0 +1,17 @@
using HotelContracts.BindingModels;
using HotelContracts.SearchModels;
using HotelContracts.ViewModels;
using HotelDataModels.Models;
namespace HotelContracts.BusinessLogicsContracts
{
public interface IConferenceLogic
{
List<ConferenceViewModel>? ReadList(ConferenceSearchModel? model);
ConferenceViewModel? ReadElement(ConferenceSearchModel? model);
bool Create(ConferenceBindingModel model);
bool Update(ConferenceBindingModel model);
bool Delete(ConferenceBindingModel model);
}
}

View File

@ -0,0 +1,22 @@
using HotelContracts.BindingModels;
using HotelContracts.SearchModels;
using HotelContracts.ViewModels;
using HotelDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.BusinessLogicsContracts
{
public interface IMealPlanLogic
{
List<MealPlanViewModel>? ReadList(MealPlanSearchModel? model);
MealPlanViewModel? ReadElement(MealPlanSearchModel? model);
bool Create(MealPlanBindingModel model);
bool Update(MealPlanBindingModel model);
bool Delete(MealPlanBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using HotelContracts.BindingModels;
using HotelContracts.SearchModels;
using HotelContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.BusinessLogicsContracts
{
public interface IOrganiserLogic
{
List<OrganiserViewModel>? ReadList(OrganiserSearchModel? model);
OrganiserViewModel? ReadElement(OrganiserSearchModel model);
bool Create(OrganiserBindingModel model);
bool Update(OrganiserBindingModel model);
bool Delete(OrganiserBindingModel model);
}
}

View File

@ -0,0 +1,22 @@
using HotelContracts.BindingModels;
using HotelContracts.SearchModels;
using HotelContracts.ViewModels;
using HotelDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.BusinessLogicsContracts
{
public interface IParticipantLogic
{
List<ParticipantViewModel>? ReadList(ParticipantSearchModel? model);
ParticipantViewModel? ReadElement(ParticipantSearchModel? model);
bool Create(ParticipantBindingModel model);
bool Update(ParticipantBindingModel model);
bool Delete(ParticipantBindingModel model);
}
}

View File

@ -10,12 +10,4 @@
<ProjectReference Include="..\HotelDataModels\HotelDataModels.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="BindingModels\" />
<Folder Include="SearchModels\" />
<Folder Include="ViewModels\" />
<Folder Include="BusinessLogicsContracts\" />
<Folder Include="StoragesContracts\" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.SearchModels
{
public class ConferenceSearchModel
{
public int? Id { get; set; }
public string? ConferenceName { get; set; }
public int? OrganiserId { get; set; }
}
}

View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.SearchModels
{
public class MealPlanSearchModel
{
public int? Id { get; set; }
public string? MealPlantName { get; set; }
public int? OrganiserId { get; set; }
}
}

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.SearchModels
{
public class OrganiserSearchModel
{
public int Id { get; set; }
public string OrganiserLogin { get; set; } = string.Empty;
public string OrganiserPassword { get; set; } = string.Empty;
public string OrganiserEmail { get; set; } = string.Empty;
public string OrganiserFIO { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.SearchModels
{
public class ParticipantSearchModel
{
public int? Id { get; set; }
public string? FIO { get; set; }
public int? OrganiserId { get; set; }
}
}

View File

@ -0,0 +1,21 @@
using HotelContracts.BindingModels;
using HotelContracts.SearchModels;
using HotelContracts.ViewModels;
namespace HotelContracts.StoragesContracts
{
public interface IConferenceStorage
{
List<ConferenceViewModel> GetFullList();
List<ConferenceViewModel> GetFilteredList(ConferenceSearchModel model);
ConferenceViewModel? GetElement(ConferenceSearchModel model);
ConferenceViewModel? Insert(ConferenceBindingModel model);
ConferenceViewModel? Update(ConferenceBindingModel model);
ConferenceViewModel? Create(ConferenceBindingModel model);
}
}

View File

@ -0,0 +1,26 @@
using HotelContracts.BindingModels;
using HotelContracts.SearchModels;
using HotelContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.StoragesContracts
{
public interface IMealPlanStorage
{
List<MealPlanViewModel> GetFullList();
List<MealPlanViewModel> GetFilteredList(MealPlanSearchModel model);
MealPlanViewModel? GetElement(MealPlanSearchModel model);
MealPlanViewModel? Insert(MealPlanBindingModel model);
MealPlanViewModel? Update(MealPlanBindingModel model);
MealPlanViewModel? Create(MealPlanBindingModel model);
}
}

View File

@ -0,0 +1,26 @@
using HotelContracts.BindingModels;
using HotelContracts.SearchModels;
using HotelContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.StoragesContracts
{
public interface IOrganiserStorage
{
List<OrganiserViewModel> GetFullList();
List<OrganiserViewModel> GetFilteredList(OrganiserSearchModel model);
OrganiserViewModel? GetElement(OrganiserSearchModel model);
OrganiserViewModel? Insert(OrganiserBindingModel model);
OrganiserViewModel? Update(OrganiserBindingModel model);
OrganiserViewModel? Delete(OrganiserBindingModel model);
}
}

View File

@ -0,0 +1,26 @@
using HotelContracts.BindingModels;
using HotelContracts.SearchModels;
using HotelContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.StoragesContracts
{
public interface ParticipantStorage
{
List<ParticipantViewModel> GetFullList();
List<ParticipantViewModel> GetFilteredList(ParticipantSearchModel model);
ParticipantViewModel? GetElement(ParticipantSearchModel model);
ParticipantViewModel? Insert(ParticipantBindingModel model);
ParticipantViewModel? Update(ParticipantBindingModel model);
ParticipantViewModel? Create(ParticipantBindingModel model);
}
}

View File

@ -0,0 +1,26 @@
using HotelDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.ViewModels
{
public class ConferenceViewModel : IConferenceModel
{
public int Id { get; set; }
[DisplayName("Название конференции")]
public string ConferenceName { get; set; } = string.Empty;
[DisplayName("Тема конференции")]
public string Subject { get; set; } = string.Empty;
public int OrganiserId { get; set; }
public Dictionary<int, IParticipantModel> ConferenceParticipants { get; set; } = new();
//public Dictionary<int, IConferenceBookingModel> ConferenceConferenceBooking { get; set; } = new();
}
}

View File

@ -0,0 +1,26 @@
using HotelDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.ViewModels
{
public class MealPlanViewModel
{
public int Id { get; set; }
[DisplayName("Название плана питания")]
public string MealPlantName { get; set; } = string.Empty;
[DisplayName("Цена плана питания")]
public double MealPlanPrice { get; set; }
public int OrganiserId { get; set; }
public Dictionary<int, IParticipantModel> MealPlanParticipants { get; set; } = new();
//public Dictionary<int, IRoomModel> MealPlanRooms { get; set; } = new();
}
}

View File

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.ViewModels
{
public class OrganiserViewModel
{
public int Id { get; set; }
[DisplayName("Логин организатора")]
public string OrganiserLogin { get; set; } = string.Empty;
[DisplayName("Пароль организатора")]
public string OrganiserPassword { get; set; } = string.Empty;
[DisplayName("Эл. почта организатора")]
public string OrganiserEmail { get; set; } = string.Empty;
[DisplayName("Номер организатора")]
public string OrganiserNumber { get; set; } = string.Empty;
[DisplayName("ФИО организатора")]
public string OrganiserFIO { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,23 @@
using HotelDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HotelContracts.ViewModels
{
public class ParticipantViewModel : IParticipantModel
{
public int Id { get; set; }
[DisplayName("ФИО участника")]
public string FIO { get; set; } = string.Empty;
[DisplayName("Номер участника")]
public string Number { get; set; } = string.Empty;
public int OrganiserId { get; set; }
}
}

View File

@ -5,6 +5,6 @@
string ConferenceName { get; }
string Subject { get; }
int OrganiserId { get; }
public Dictionary<int, IParticipantModels> ConferenceParticipants { get; }
public Dictionary<int, IParticipantModel> ConferenceParticipants { get; }
}
}

View File

@ -5,6 +5,6 @@
string MealPlantName { get; }
double MealPlanPrice { get; }
int OrganiserId { get; }
public Dictionary<int, IParticipantModels> MealPlanParticipants { get; }
public Dictionary<int, IParticipantModel> MealPlanParticipants { get; }
}
}

View File

@ -1,6 +1,6 @@
namespace HotelDataModels.Models
{
public interface IParticipantModels : IId
public interface IParticipantModel : IId
{
string FIO { get; }
string Number { get; }