diff --git a/CarCenter/CarCenter.sln b/CarCenter/CarCenter.sln index 2ab97ca..8079936 100644 --- a/CarCenter/CarCenter.sln +++ b/CarCenter/CarCenter.sln @@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarCenter", "CarCenter\CarC EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarCenterDataModels", "CarCenterDataModels\CarCenterDataModels.csproj", "{58AA6C37-69D9-4779-8A1C-CE68D29A7BA4}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarCenterContracts", "CarCenterContracts\CarCenterContracts.csproj", "{DA8738DD-3CB5-46D7-AF56-B7ABBFD6EFDC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {58AA6C37-69D9-4779-8A1C-CE68D29A7BA4}.Debug|Any CPU.Build.0 = Debug|Any CPU {58AA6C37-69D9-4779-8A1C-CE68D29A7BA4}.Release|Any CPU.ActiveCfg = Release|Any CPU {58AA6C37-69D9-4779-8A1C-CE68D29A7BA4}.Release|Any CPU.Build.0 = Release|Any CPU + {DA8738DD-3CB5-46D7-AF56-B7ABBFD6EFDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA8738DD-3CB5-46D7-AF56-B7ABBFD6EFDC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA8738DD-3CB5-46D7-AF56-B7ABBFD6EFDC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA8738DD-3CB5-46D7-AF56-B7ABBFD6EFDC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CarCenter/CarCenterContracts/BindingModels/AdministratorBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/AdministratorBindingModel.cs new file mode 100644 index 0000000..b995f9b --- /dev/null +++ b/CarCenter/CarCenterContracts/BindingModels/AdministratorBindingModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BindingModels +{ + public class AdministratorBindingModel : IAdministratorModel + { + public int Id { get; set; } + public string AdministratorFIO { get; set; } = string.Empty; + public string AdministratorLogin { get; set; } = string.Empty; + public string AdministratorPassword { get; set; } = string.Empty; + public string AdministratorEmail { get; set; } = string.Empty; + public string AdministratorNumber { get; set; } = string.Empty; + } +} diff --git a/CarCenter/CarCenterContracts/BindingModels/CarSalesBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/CarSalesBindingModel.cs new file mode 100644 index 0000000..96617bc --- /dev/null +++ b/CarCenter/CarCenterContracts/BindingModels/CarSalesBindingModel.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BindingModels +{ + public class CarSalesBindingModel : ICarSalesModel + { + public int Id { get; set; } + public string CarBrand{ get; set; } = string.Empty; + public string CarModel { get; set; } = string.Empty; + public decimal CarCost { get; set; } + public int AdministratorId { get; set; } + } +} diff --git a/CarCenter/CarCenterContracts/BindingModels/CompletionsBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/CompletionsBindingModel.cs new file mode 100644 index 0000000..ddfc793 --- /dev/null +++ b/CarCenter/CarCenterContracts/BindingModels/CompletionsBindingModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BindingModels +{ + public class CompletionsBindingModel : IСompletionsModel + { + public int Id { get; set; } + public string СompletionName { get; set; } = string.Empty; + public string СompletionFeatures { get; set; } = string.Empty; + public decimal СompletionPrice { get; set; } + public int AdministratorId { get; set; } + public Dictionary СompletionCars { get; set; } = new(); + } +} diff --git a/CarCenter/CarCenterContracts/BindingModels/EmployeeBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/EmployeeBindingModel.cs new file mode 100644 index 0000000..bd84305 --- /dev/null +++ b/CarCenter/CarCenterContracts/BindingModels/EmployeeBindingModel.cs @@ -0,0 +1,19 @@ +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BindingModels +{ + public class EmployeeBindingModel : IEmployeeModel + { + public int Id { get; set; } + + public string EmployeeFIO { get; set; } = string.Empty; + + public string EmployeePost { get; set; } = string.Empty; + + public string EmployeeSalary { get; set; } = string.Empty; + + public int ManagerId { get; set; } + + public Dictionary EmployeeSales { get; set; } = new(); + } +} \ No newline at end of file diff --git a/CarCenter/CarCenterContracts/BindingModels/InspectionBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/InspectionBindingModel.cs new file mode 100644 index 0000000..ab6b1ca --- /dev/null +++ b/CarCenter/CarCenterContracts/BindingModels/InspectionBindingModel.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BindingModels +{ + public class InspectionBindingModel : IInspectionModel + { + public int Id { get; set; } + public string InspectionName { get; set; } = string.Empty; + public decimal InspectionCost { get; set; } + public DateTime? InspectionDate { get; set; } + public int AdministratorId { get; set; } + public int EmployeeId { get; set; } + public Dictionary InspectionCars { get; set; } = new(); + } +} diff --git a/CarCenter/CarCenterContracts/BindingModels/ManagerBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/ManagerBindingModel.cs new file mode 100644 index 0000000..516e4f7 --- /dev/null +++ b/CarCenter/CarCenterContracts/BindingModels/ManagerBindingModel.cs @@ -0,0 +1,15 @@ +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BindingModels +{ + public class ManagerBindingModel : IManagerModel + { + public int Id { get; set; } + public string ManagerFIO { get; set; } = string.Empty; + public string ManagerLogin { get; set; } = string.Empty; + public string ManagerPassword { get; set; } = string.Empty; + public string ManagerEmail { get; set; } = string.Empty; + public string ManagerNumber { get; set; } = string.Empty; + + } +} \ No newline at end of file diff --git a/CarCenter/CarCenterContracts/BindingModels/PreSaleWorkBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/PreSaleWorkBindingModel.cs new file mode 100644 index 0000000..dfc1c63 --- /dev/null +++ b/CarCenter/CarCenterContracts/BindingModels/PreSaleWorkBindingModel.cs @@ -0,0 +1,15 @@ +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BindingModels +{ + public class PreSaleWorkBindingModel : IPreSaleWorkModel + { + public int Id { get; set; } + public string PreSaleWorkType { get; set; } = string.Empty; + public decimal PreSaleWorkPrice { get; set; } + public DateTime? PreSaleWorkDate { get; set; } + public int ManagerId { get; set; } + public int CompletionsId { get; set; } + public Dictionary PreSaleWorkSales { get; set; } = new(); + } +} \ No newline at end of file diff --git a/CarCenter/CarCenterContracts/BindingModels/SaleBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/SaleBindingModel.cs new file mode 100644 index 0000000..7425f30 --- /dev/null +++ b/CarCenter/CarCenterContracts/BindingModels/SaleBindingModel.cs @@ -0,0 +1,13 @@ +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BindingModels +{ + public class SaleBindingModel : ISaleModel + { + public int Id { get; set; } + public string SaleName { get; set; } = string.Empty; + public decimal SalePrice { get; set; } + public DateTime? SaleDate { get; set; } = DateTime.Now; + public int ManagerId { get; set; } + } +} \ No newline at end of file diff --git a/CarCenter/CarCenterContracts/BusinessLogicsContracts/IAdministratorLogic.cs b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IAdministratorLogic.cs new file mode 100644 index 0000000..10ec950 --- /dev/null +++ b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IAdministratorLogic.cs @@ -0,0 +1,20 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.ViewModels; +using CarCenterContracts.SearchModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.BusinessLogicsContracts +{ + public interface IAdministratorLogic + { + List? ReadList(AdministratorSearchModel? model); + AdministratorViewModel? ReadElement(AdministratorSearchModel model); + bool Create(AdministratorBindingModel model); + bool Update(AdministratorBindingModel model); + bool Delete(AdministratorBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/BusinessLogicsContracts/ICarLogic.cs b/CarCenter/CarCenterContracts/BusinessLogicsContracts/ICarLogic.cs new file mode 100644 index 0000000..062c727 --- /dev/null +++ b/CarCenter/CarCenterContracts/BusinessLogicsContracts/ICarLogic.cs @@ -0,0 +1,20 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.BusinessLogicsContracts +{ + public interface ICarLogic + { + List? ReadList(CarSearchModel? model); + CarViewModel? ReadElement(CarSearchModel model); + bool Create(CarSalesBindingModel model); + bool Update(CarSalesBindingModel model); + bool Delete(CarSalesBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/BusinessLogicsContracts/IEmployeeLogic.cs b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IEmployeeLogic.cs new file mode 100644 index 0000000..4529de9 --- /dev/null +++ b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IEmployeeLogic.cs @@ -0,0 +1,17 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BusinessLogicsContracts +{ + public interface IEmployeeLogic + { + List? ReadList(EmployeeSearchModel? model); + EmployeeViewModel? ReadElement(EmployeeSearchModel model); + bool AddSaleToEmployee(EmployeeSearchModel model, ISaleModel Sale); + bool Create(EmployeeBindingModel model); + bool Update(EmployeeBindingModel model); + bool Delete(EmployeeBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/BusinessLogicsContracts/IEquipmentLogic.cs b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IEquipmentLogic.cs new file mode 100644 index 0000000..072beff --- /dev/null +++ b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IEquipmentLogic.cs @@ -0,0 +1,22 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; +using CarCenterDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.BusinessLogicsContracts +{ + public interface IEquipmentLogic + { + List? ReadList(EquipmentSearchModel? model); + EquipmentViewModel? ReadElement(EquipmentSearchModel model); + bool Create(CompletionsBindingModel model); + bool Update(CompletionsBindingModel model); + bool Delete(CompletionsBindingModel model); + bool AddCarToEquipment(EquipmentSearchModel model, ICarModel car); + } +} diff --git a/CarCenter/CarCenterContracts/BusinessLogicsContracts/IInspectionLogic.cs b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IInspectionLogic.cs new file mode 100644 index 0000000..fc2c4a7 --- /dev/null +++ b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IInspectionLogic.cs @@ -0,0 +1,22 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BusinessLogicsContracts +{ + public interface IInspectionLogic + { + List? ReadList(InspectionSearchModel? model); + InspectionViewModel? ReadElement(InspectionSearchModel model); + bool Create(InspectionBindingModel model); + bool Update(InspectionBindingModel model); + bool Delete(InspectionBindingModel model); + bool AddCarToInspection(InspectionSearchModel model, ICarModel car); + } +} diff --git a/CarCenter/CarCenterContracts/BusinessLogicsContracts/IManagerLogic.cs b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IManagerLogic.cs new file mode 100644 index 0000000..3f30eeb --- /dev/null +++ b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IManagerLogic.cs @@ -0,0 +1,15 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; + +namespace CarCenterContracts.BusinessLogicsContracts +{ + public interface IManagerLogic + { + List? ReadList(ManagerSearchModel? model); + ManagerViewModel? ReadElement(ManagerSearchModel model); + bool Create(ManagerBindingModel model); + bool Update(ManagerBindingModel model); + bool Delete(ManagerBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/BusinessLogicsContracts/IPreSaleWorkLogic.cs b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IPreSaleWorkLogic.cs new file mode 100644 index 0000000..c04c471 --- /dev/null +++ b/CarCenter/CarCenterContracts/BusinessLogicsContracts/IPreSaleWorkLogic.cs @@ -0,0 +1,17 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; +using CarCenterDataModels.Models; + +namespace CarCenterContracts.BusinessLogicsContracts +{ + public interface IPreSaleWorkLogic + { + List? ReadList(PreSaleWorkSearchModel? model); + PreSaleWorkViewModel? ReadElement(PreSaleWorkSearchModel model); + bool AddSaleToPreSaleWork(PreSaleWorkSearchModel model, ISaleModel Sale); + bool Create(PreSaleWorkBindingModel model); + bool Update(PreSaleWorkBindingModel model); + bool Delete(PreSaleWorkBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/BusinessLogicsContracts/ISaleLogic.cs b/CarCenter/CarCenterContracts/BusinessLogicsContracts/ISaleLogic.cs new file mode 100644 index 0000000..6e33ecb --- /dev/null +++ b/CarCenter/CarCenterContracts/BusinessLogicsContracts/ISaleLogic.cs @@ -0,0 +1,15 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; + +namespace CarCenterContracts.BusinessLogicsContracts +{ + public interface ISaleLogic + { + List? ReadList(SaleSearchModel? model); + SaleViewModel? ReadElement(SaleSearchModel model); + bool Create(SaleBindingModel model); + bool Update(SaleBindingModel model); + bool Delete(SaleBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/CarCenterContracts.csproj b/CarCenter/CarCenterContracts/CarCenterContracts.csproj new file mode 100644 index 0000000..97673d7 --- /dev/null +++ b/CarCenter/CarCenterContracts/CarCenterContracts.csproj @@ -0,0 +1,13 @@ + + + + net6.0 + enable + enable + + + + + + + diff --git a/CarCenter/CarCenterContracts/SearchModels/AdministratorSearchModel.cs b/CarCenter/CarCenterContracts/SearchModels/AdministratorSearchModel.cs new file mode 100644 index 0000000..9adc3a6 --- /dev/null +++ b/CarCenter/CarCenterContracts/SearchModels/AdministratorSearchModel.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.SearchModels +{ + public class AdministratorSearchModel + { + public int? Id { get; set; } + public string? AdministratorFIO { get; set; } + public string? AdministratorLogin { get; set; } + public string? AdministratorEmail { get; set; } + public string? AdministratorPassword { get; set; } + } +} diff --git a/CarCenter/CarCenterContracts/SearchModels/CarSearchModel.cs b/CarCenter/CarCenterContracts/SearchModels/CarSearchModel.cs new file mode 100644 index 0000000..7aa3ac6 --- /dev/null +++ b/CarCenter/CarCenterContracts/SearchModels/CarSearchModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.SearchModels +{ + public class CarSearchModel + { + public int? Id { get; set; } + public string? BrandCar { get; set; } + public string? Model { get; set; } + public int? AdministratorId { get; set; } + } +} diff --git a/CarCenter/CarCenterContracts/SearchModels/EmployeeSearchModel.cs b/CarCenter/CarCenterContracts/SearchModels/EmployeeSearchModel.cs new file mode 100644 index 0000000..4723bca --- /dev/null +++ b/CarCenter/CarCenterContracts/SearchModels/EmployeeSearchModel.cs @@ -0,0 +1,12 @@ +namespace CarCenterContracts.SearchModels +{ + public class EmployeeSearchModel + { + public int? Id { get; set; } + public string? EmployeeFIO { get; set; } + public string? Specialization { get; set; } + public int? ManagerId { get; set; } + public DateTime? DateFrom { get; set; } + public DateTime? DateTo { get; set; } + } +} \ No newline at end of file diff --git a/CarCenter/CarCenterContracts/SearchModels/EquipmentSearchModel.cs b/CarCenter/CarCenterContracts/SearchModels/EquipmentSearchModel.cs new file mode 100644 index 0000000..55dc315 --- /dev/null +++ b/CarCenter/CarCenterContracts/SearchModels/EquipmentSearchModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.SearchModels +{ + public class EquipmentSearchModel + { + public int? Id { get; set; } + public string? EquipmentName { get; set; } + public int? AdministratorId { get; set; } + public int? PreSaleWorkId { get; set; } + } +} diff --git a/CarCenter/CarCenterContracts/SearchModels/InspectionSearchModel.cs b/CarCenter/CarCenterContracts/SearchModels/InspectionSearchModel.cs new file mode 100644 index 0000000..93dc94f --- /dev/null +++ b/CarCenter/CarCenterContracts/SearchModels/InspectionSearchModel.cs @@ -0,0 +1,19 @@ +using CarCenterDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.SearchModels +{ + public class InspectionSearchModel + { + public int? Id { get; set; } + public string? InspectionName { get; set; } + public DateTime? InspectionDate { get; set; } + public int? AdministratorId { get; set; } + public int? EmployeeId { get; set; } + + } +} diff --git a/CarCenter/CarCenterContracts/SearchModels/ManagerSearchModel.cs b/CarCenter/CarCenterContracts/SearchModels/ManagerSearchModel.cs new file mode 100644 index 0000000..409d95d --- /dev/null +++ b/CarCenter/CarCenterContracts/SearchModels/ManagerSearchModel.cs @@ -0,0 +1,11 @@ +namespace CarCenterContracts.SearchModels +{ + public class ManagerSearchModel + { + public int? Id { get; set; } + public string? ManagerFIO { get; set; } + public string? ManagerLogin { get; set; } + public string? ManagerEmail { get; set; } + public string? ManagerPassword { get; set; } + } +} diff --git a/CarCenter/CarCenterContracts/SearchModels/PreSaleWorkSearchModel.cs b/CarCenter/CarCenterContracts/SearchModels/PreSaleWorkSearchModel.cs new file mode 100644 index 0000000..ecf5603 --- /dev/null +++ b/CarCenter/CarCenterContracts/SearchModels/PreSaleWorkSearchModel.cs @@ -0,0 +1,11 @@ +namespace CarCenterContracts.SearchModels +{ + public class PreSaleWorkSearchModel + { + public int? Id { get; set; } + public string? PreSaleWorkType { get; set; } + public int? ManagerId { get; set; } + public DateTime? DateFrom { get; set; } + public DateTime? DateTo { get; set; } + } +} diff --git a/CarCenter/CarCenterContracts/SearchModels/SaleSearchModel.cs b/CarCenter/CarCenterContracts/SearchModels/SaleSearchModel.cs new file mode 100644 index 0000000..417a468 --- /dev/null +++ b/CarCenter/CarCenterContracts/SearchModels/SaleSearchModel.cs @@ -0,0 +1,9 @@ +namespace CarCenterContracts.SearchModels +{ + public class SaleSearchModel + { + public int? Id { get; set; } + public DateTime? SaleDate { get; set; } + public int? ManagerId { get; set; } + } +} diff --git a/CarCenter/CarCenterContracts/StoragesContracts/IAdministratorStorage.cs b/CarCenter/CarCenterContracts/StoragesContracts/IAdministratorStorage.cs new file mode 100644 index 0000000..a1a839f --- /dev/null +++ b/CarCenter/CarCenterContracts/StoragesContracts/IAdministratorStorage.cs @@ -0,0 +1,26 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.StoragesContracts +{ + public interface IAdministratorStorage + { + List GetFullList(); + + List GetFilteredList(AdministratorSearchModel model); + + AdministratorViewModel? GetElement(AdministratorSearchModel model); + + AdministratorViewModel? Insert(AdministratorBindingModel model); + + AdministratorViewModel? Update(AdministratorBindingModel model); + + AdministratorViewModel? Delete(AdministratorBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/StoragesContracts/ICarStorage.cs b/CarCenter/CarCenterContracts/StoragesContracts/ICarStorage.cs new file mode 100644 index 0000000..e45fd63 --- /dev/null +++ b/CarCenter/CarCenterContracts/StoragesContracts/ICarStorage.cs @@ -0,0 +1,26 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.StoragesContracts +{ + public interface ICarStorage + { + List GetFullList(); + + List GetFilteredList(CarSearchModel model); + + CarViewModel? GetElement(CarSearchModel model); + + CarViewModel? Insert(CarSalesBindingModel model); + + CarViewModel? Update(CarSalesBindingModel model); + + CarViewModel? Delete(CarSalesBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/StoragesContracts/IEmployeeStorage.cs b/CarCenter/CarCenterContracts/StoragesContracts/IEmployeeStorage.cs new file mode 100644 index 0000000..8bfab48 --- /dev/null +++ b/CarCenter/CarCenterContracts/StoragesContracts/IEmployeeStorage.cs @@ -0,0 +1,21 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; + +namespace CarCenterContracts.StoragesContracts +{ + public interface IEmployeeStorage + { + List GetFullList(); + + List GetFilteredList(EmployeeSearchModel model); + + EmployeeViewModel? GetElement(EmployeeSearchModel model); + + EmployeeViewModel? Insert(EmployeeBindingModel model); + + EmployeeViewModel? Update(EmployeeBindingModel model); + + EmployeeViewModel? Delete(EmployeeBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/StoragesContracts/IEquipmentStorage.cs b/CarCenter/CarCenterContracts/StoragesContracts/IEquipmentStorage.cs new file mode 100644 index 0000000..b2f6f7c --- /dev/null +++ b/CarCenter/CarCenterContracts/StoragesContracts/IEquipmentStorage.cs @@ -0,0 +1,26 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.StoragesContracts +{ + public interface IEquipmentStorage + { + List GetFullList(); + + List GetFilteredList(EquipmentSearchModel model); + + EquipmentViewModel? GetElement(EquipmentSearchModel model); + + EquipmentViewModel? Insert(CompletionsBindingModel model); + + EquipmentViewModel? Update(CompletionsBindingModel model); + + EquipmentViewModel? Delete(CompletionsBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/StoragesContracts/IInspectionStorage.cs b/CarCenter/CarCenterContracts/StoragesContracts/IInspectionStorage.cs new file mode 100644 index 0000000..109a7eb --- /dev/null +++ b/CarCenter/CarCenterContracts/StoragesContracts/IInspectionStorage.cs @@ -0,0 +1,26 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.StoragesContracts +{ + public interface IInspectionStorage + { + List GetFullList(); + + List GetFilteredList(InspectionSearchModel model); + + InspectionViewModel? GetElement(InspectionSearchModel model); + + InspectionViewModel? Insert(InspectionBindingModel model); + + InspectionViewModel? Update(InspectionBindingModel model); + + InspectionViewModel? Delete(InspectionBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/StoragesContracts/IManagerStorage.cs b/CarCenter/CarCenterContracts/StoragesContracts/IManagerStorage.cs new file mode 100644 index 0000000..308f013 --- /dev/null +++ b/CarCenter/CarCenterContracts/StoragesContracts/IManagerStorage.cs @@ -0,0 +1,21 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; + +namespace CarCenterContracts.StoragesContracts +{ + public interface IManagerStorage + { + List GetFullList(); + + List GetFilteredList(ManagerSearchModel model); + + ManagerViewModel? GetElement(ManagerSearchModel model); + + ManagerViewModel? Insert(ManagerBindingModel model); + + ManagerViewModel? Update(ManagerBindingModel model); + + ManagerViewModel? Delete(ManagerBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/StoragesContracts/IPreSaleWorkStorage.cs b/CarCenter/CarCenterContracts/StoragesContracts/IPreSaleWorkStorage.cs new file mode 100644 index 0000000..c43dba2 --- /dev/null +++ b/CarCenter/CarCenterContracts/StoragesContracts/IPreSaleWorkStorage.cs @@ -0,0 +1,21 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; + +namespace CarCenterContracts.StoragesContracts +{ + public interface IPreSaleWorkStorage + { + List GetFullList(); + + List GetFilteredList(PreSaleWorkSearchModel model); + + PreSaleWorkViewModel? GetElement(PreSaleWorkSearchModel model); + + PreSaleWorkViewModel? Insert(PreSaleWorkBindingModel model); + + PreSaleWorkViewModel? Update(PreSaleWorkBindingModel model); + + PreSaleWorkViewModel? Delete(PreSaleWorkBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/StoragesContracts/ISaleStorage.cs b/CarCenter/CarCenterContracts/StoragesContracts/ISaleStorage.cs new file mode 100644 index 0000000..3294499 --- /dev/null +++ b/CarCenter/CarCenterContracts/StoragesContracts/ISaleStorage.cs @@ -0,0 +1,21 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.ViewModels; + +namespace CarCenterContracts.StoragesContracts +{ + public interface ISaleStorage + { + List GetFullList(); + + List GetFilteredList(SaleSearchModel model); + + SaleViewModel? GetElement(SaleSearchModel model); + + SaleViewModel? Insert(SaleBindingModel model); + + SaleViewModel? Update(SaleBindingModel model); + + SaleViewModel? Delete(SaleBindingModel model); + } +} diff --git a/CarCenter/CarCenterContracts/ViewModels/AdministratorViewModel.cs b/CarCenter/CarCenterContracts/ViewModels/AdministratorViewModel.cs new file mode 100644 index 0000000..fbc00fc --- /dev/null +++ b/CarCenter/CarCenterContracts/ViewModels/AdministratorViewModel.cs @@ -0,0 +1,30 @@ +using CarCenterDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.ViewModels +{ + public class AdministratorViewModel : IAdministratorModel + { + public int Id { get; set; } + + [DisplayName("ФИО администратора")] + public string AdministratorFIO { get; set; } = string.Empty; + + [DisplayName("Телефон администратора")] + public string AdministratorNumber { get; set; } = string.Empty; + + [DisplayName("Логин администратора")] + public string AdministratorLogin { get; set; } = string.Empty; + + [DisplayName("Mail администратора")] + public string AdministratorEmail { get; set; } = string.Empty; + + [DisplayName("Пароль администратора")] + public string AdministratorPassword { get; set; } = string.Empty; + } +} diff --git a/CarCenter/CarCenterContracts/ViewModels/CarViewModel.cs b/CarCenter/CarCenterContracts/ViewModels/CarViewModel.cs new file mode 100644 index 0000000..f5f6b7a --- /dev/null +++ b/CarCenter/CarCenterContracts/ViewModels/CarViewModel.cs @@ -0,0 +1,22 @@ +using CarCenterDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.ViewModels +{ + public class CarViewModel : ICarModel + { + public int Id { get; set; } + + [DisplayName("Бренд машины")] + public string BrandCar { get; set; } = string.Empty; + + [DisplayName("Модель машины")] + public string Model { get; set; } = string.Empty; + public int AdministratorId { get; set; } + } +} diff --git a/CarCenter/CarCenterContracts/ViewModels/EmployeeViewModel.cs b/CarCenter/CarCenterContracts/ViewModels/EmployeeViewModel.cs new file mode 100644 index 0000000..274a356 --- /dev/null +++ b/CarCenter/CarCenterContracts/ViewModels/EmployeeViewModel.cs @@ -0,0 +1,29 @@ +using CarCenterDataModels.Models; +using System.ComponentModel; +using Newtonsoft.Json; + +namespace CarCenterContracts.ViewModels +{ + public class EmployeeViewModel : IEmployeeModel + { + [DisplayName("ФИО Сотрудника")] + public string EmployeeFIO { get; set; } = string.Empty; + + [DisplayName("Специализация")] + public string Specialization { get; set; } = string.Empty; + + public int ManagerId { get; set; } + + public int Id { get; set; } + public Dictionary EmployeeSales { get; set; } = new(); + public Dictionary EmployeeInspection { get; set; } + + public EmployeeViewModel() { } + + [JsonConstructor] + public EmployeeViewModel(Dictionary EmployeeSales) + { + this.EmployeeSales = EmployeeSales.ToDictionary(x => x.Key, x => x.Value as ISaleModel); + } + } +} diff --git a/CarCenter/CarCenterContracts/ViewModels/EquipmentViewModel.cs b/CarCenter/CarCenterContracts/ViewModels/EquipmentViewModel.cs new file mode 100644 index 0000000..55c49fe --- /dev/null +++ b/CarCenter/CarCenterContracts/ViewModels/EquipmentViewModel.cs @@ -0,0 +1,24 @@ +using CarCenterDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.ViewModels +{ + public class EquipmentViewModel : IEquipmentModel + { + public int Id { get; set; } + + [DisplayName("Название комплектации")] + public string EquipmentName { get; set; } = string.Empty; + + [DisplayName("Цена комплектации")] + public double EquipmentPrice { get; set; } + public int AdministratorId { get; set; } + public int? PreSaleWorkId { get; set; } + public Dictionary EquipmentCars { get; set; } = new(); + } +} diff --git a/CarCenter/CarCenterContracts/ViewModels/InspectionViewModel.cs b/CarCenter/CarCenterContracts/ViewModels/InspectionViewModel.cs new file mode 100644 index 0000000..26da23b --- /dev/null +++ b/CarCenter/CarCenterContracts/ViewModels/InspectionViewModel.cs @@ -0,0 +1,26 @@ +using CarCenterDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarCenterContracts.ViewModels +{ + public class InspectionViewModel : IInspectionModel + { + public int Id { get; set; } + + [DisplayName("Название осмотра")] + public string InspectionName { get; set; } = string.Empty; + + [DisplayName("Дата осмотра")] + public DateTime? InspectionDate { get; set; } + public int AdministratorId { get; set; } + public int? EmployeeId { get; set; } + + public string EmployeeName { get; set; } = string.Empty; + public Dictionary InspectionCars { get; set; } = new(); + } +} diff --git a/CarCenter/CarCenterContracts/ViewModels/ManagerViewModel.cs b/CarCenter/CarCenterContracts/ViewModels/ManagerViewModel.cs new file mode 100644 index 0000000..867ce5d --- /dev/null +++ b/CarCenter/CarCenterContracts/ViewModels/ManagerViewModel.cs @@ -0,0 +1,25 @@ +using CarCenterDataModels.Models; +using System.ComponentModel; + +namespace CarCenterContracts.ViewModels +{ + public class ManagerViewModel : IManagerModel + { + [DisplayName("ФИО менеджера")] + public string ManagerFIO { get; set; } = string.Empty; + + [DisplayName("Номер телефона менеджера")] + public string ManagerNumber { get; set; } = string.Empty; + + [DisplayName("Логин менеджера")] + public string ManagerLogin { get; set; } = string.Empty; + + [DisplayName("Эл. почта менеджера")] + public string ManagerEmail { get; set; } = string.Empty; + + [DisplayName("Пароль менеджера")] + public string ManagerPassword { get; set; } = string.Empty; + + public int Id { get; set; } + } +} diff --git a/CarCenter/CarCenterContracts/ViewModels/PreSaleWorkViewModel.cs b/CarCenter/CarCenterContracts/ViewModels/PreSaleWorkViewModel.cs new file mode 100644 index 0000000..2f9d16f --- /dev/null +++ b/CarCenter/CarCenterContracts/ViewModels/PreSaleWorkViewModel.cs @@ -0,0 +1,31 @@ +using CarCenterDataModels.Models; +using System.ComponentModel; +using Newtonsoft.Json; + +namespace CarCenterContracts.ViewModels +{ + public class PreSaleWorkViewModel : IPreSaleWorkModel + { + [DisplayName("Тип предпродажной работы")] + public string PreSaleWorkType { get; set; } = string.Empty; + + [DisplayName("Стоимость предпродажной работы")] + public double PreSaleWorkPrice { get; set; } + + public int ManagerId { get; set; } + + public int Id { get; set; } + + public Dictionary PreSaleWorkSales { get; set; } = new(); + public Dictionary PreSaleWorkCars { get; set; } = new(); + + public PreSaleWorkViewModel() { } + + [JsonConstructor] + public PreSaleWorkViewModel(Dictionary PreSaleWorkSales, Dictionary PreSaleWorkCars) + { + this.PreSaleWorkSales = PreSaleWorkSales.ToDictionary(x => x.Key, x => x.Value as ISaleModel); + this.PreSaleWorkCars = PreSaleWorkCars.ToDictionary(x => x.Key, x => x.Value as ICarModel); + } + } +} diff --git a/CarCenter/CarCenterContracts/ViewModels/SaleViewModel.cs b/CarCenter/CarCenterContracts/ViewModels/SaleViewModel.cs new file mode 100644 index 0000000..9a97e51 --- /dev/null +++ b/CarCenter/CarCenterContracts/ViewModels/SaleViewModel.cs @@ -0,0 +1,18 @@ +using CarCenterDataModels.Models; +using System.ComponentModel; + +namespace CarCenterContracts.ViewModels +{ + public class SaleViewModel : ISaleModel + { + public int Id { get; set; } + + [DisplayName("Дата продажи")] + public DateTime? SaleDate { get; set; } + + [DisplayName("Цена продажи")] + public string SalePrice { get; set; } = string.Empty; + + public int ManagerId { get; set; } + } +} \ No newline at end of file diff --git a/CarCenter/CarCenterDataModels/Models/IPreSaleWorkModel.cs b/CarCenter/CarCenterDataModels/Models/IPreSaleWorkModel.cs index 08099ae..b5577ae 100644 --- a/CarCenter/CarCenterDataModels/Models/IPreSaleWorkModel.cs +++ b/CarCenter/CarCenterDataModels/Models/IPreSaleWorkModel.cs @@ -3,7 +3,7 @@ public interface IPreSaleWorkModel : IId { string PreSaleWorkType { get; } - double PreSaleWorkPrice { get; } + decimal PreSaleWorkPrice { get; } DateTime? PreSaleWorkDate { get; } int ManagerId { get; } int CompletionsId { get; } diff --git a/CarCenter/CarCenterDataModels/Models/IСompletionsModel.cs b/CarCenter/CarCenterDataModels/Models/IСompletionsModel.cs index 0a2925b..7d92be5 100644 --- a/CarCenter/CarCenterDataModels/Models/IСompletionsModel.cs +++ b/CarCenter/CarCenterDataModels/Models/IСompletionsModel.cs @@ -10,7 +10,7 @@ namespace CarCenterDataModels.Models { string СompletionName { get; } string СompletionFeatures { get; } - double СompletionPrice { get; } + decimal СompletionPrice { get; } int AdministratorId { get; } public Dictionary СompletionCars { get; } }