contracts ready

This commit is contained in:
goldfest 2024-04-29 22:57:23 +04:00
parent 31bf053c6d
commit b4005174f2
44 changed files with 811 additions and 2 deletions

View File

@ -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

View File

@ -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;
}
}

View File

@ -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; }
}
}

View File

@ -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<int, ICarSalesModel> СompletionCars { get; set; } = new();
}
}

View File

@ -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<int, ISaleModel> EmployeeSales { get; set; } = new();
}
}

View File

@ -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<int, ICarSalesModel> InspectionCars { get; set; } = new();
}
}

View File

@ -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;
}
}

View File

@ -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<int, ISaleModel> PreSaleWorkSales { get; set; } = new();
}
}

View File

@ -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; }
}
}

View File

@ -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<AdministratorViewModel>? ReadList(AdministratorSearchModel? model);
AdministratorViewModel? ReadElement(AdministratorSearchModel model);
bool Create(AdministratorBindingModel model);
bool Update(AdministratorBindingModel model);
bool Delete(AdministratorBindingModel model);
}
}

View File

@ -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<CarViewModel>? ReadList(CarSearchModel? model);
CarViewModel? ReadElement(CarSearchModel model);
bool Create(CarSalesBindingModel model);
bool Update(CarSalesBindingModel model);
bool Delete(CarSalesBindingModel model);
}
}

View File

@ -0,0 +1,17 @@
using CarCenterContracts.BindingModels;
using CarCenterContracts.SearchModels;
using CarCenterContracts.ViewModels;
using CarCenterDataModels.Models;
namespace CarCenterContracts.BusinessLogicsContracts
{
public interface IEmployeeLogic
{
List<EmployeeViewModel>? 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);
}
}

View File

@ -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<EquipmentViewModel>? 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);
}
}

View File

@ -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<InspectionViewModel>? 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);
}
}

View File

@ -0,0 +1,15 @@
using CarCenterContracts.BindingModels;
using CarCenterContracts.SearchModels;
using CarCenterContracts.ViewModels;
namespace CarCenterContracts.BusinessLogicsContracts
{
public interface IManagerLogic
{
List<ManagerViewModel>? ReadList(ManagerSearchModel? model);
ManagerViewModel? ReadElement(ManagerSearchModel model);
bool Create(ManagerBindingModel model);
bool Update(ManagerBindingModel model);
bool Delete(ManagerBindingModel model);
}
}

View File

@ -0,0 +1,17 @@
using CarCenterContracts.BindingModels;
using CarCenterContracts.SearchModels;
using CarCenterContracts.ViewModels;
using CarCenterDataModels.Models;
namespace CarCenterContracts.BusinessLogicsContracts
{
public interface IPreSaleWorkLogic
{
List<PreSaleWorkViewModel>? 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);
}
}

View File

@ -0,0 +1,15 @@
using CarCenterContracts.BindingModels;
using CarCenterContracts.SearchModels;
using CarCenterContracts.ViewModels;
namespace CarCenterContracts.BusinessLogicsContracts
{
public interface ISaleLogic
{
List<SaleViewModel>? ReadList(SaleSearchModel? model);
SaleViewModel? ReadElement(SaleSearchModel model);
bool Create(SaleBindingModel model);
bool Update(SaleBindingModel model);
bool Delete(SaleBindingModel model);
}
}

View File

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\CarCenterDataModels\CarCenterDataModels.csproj" />
</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 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; }
}
}

View File

@ -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; }
}
}

View File

@ -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; }
}
}

View File

@ -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; }
}
}

View File

@ -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; }
}
}

View File

@ -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; }
}
}

View File

@ -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; }
}
}

View File

@ -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; }
}
}

View File

@ -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<AdministratorViewModel> GetFullList();
List<AdministratorViewModel> GetFilteredList(AdministratorSearchModel model);
AdministratorViewModel? GetElement(AdministratorSearchModel model);
AdministratorViewModel? Insert(AdministratorBindingModel model);
AdministratorViewModel? Update(AdministratorBindingModel model);
AdministratorViewModel? Delete(AdministratorBindingModel model);
}
}

View File

@ -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<CarViewModel> GetFullList();
List<CarViewModel> GetFilteredList(CarSearchModel model);
CarViewModel? GetElement(CarSearchModel model);
CarViewModel? Insert(CarSalesBindingModel model);
CarViewModel? Update(CarSalesBindingModel model);
CarViewModel? Delete(CarSalesBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using CarCenterContracts.BindingModels;
using CarCenterContracts.SearchModels;
using CarCenterContracts.ViewModels;
namespace CarCenterContracts.StoragesContracts
{
public interface IEmployeeStorage
{
List<EmployeeViewModel> GetFullList();
List<EmployeeViewModel> GetFilteredList(EmployeeSearchModel model);
EmployeeViewModel? GetElement(EmployeeSearchModel model);
EmployeeViewModel? Insert(EmployeeBindingModel model);
EmployeeViewModel? Update(EmployeeBindingModel model);
EmployeeViewModel? Delete(EmployeeBindingModel model);
}
}

View File

@ -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<EquipmentViewModel> GetFullList();
List<EquipmentViewModel> GetFilteredList(EquipmentSearchModel model);
EquipmentViewModel? GetElement(EquipmentSearchModel model);
EquipmentViewModel? Insert(CompletionsBindingModel model);
EquipmentViewModel? Update(CompletionsBindingModel model);
EquipmentViewModel? Delete(CompletionsBindingModel model);
}
}

View File

@ -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<InspectionViewModel> GetFullList();
List<InspectionViewModel> GetFilteredList(InspectionSearchModel model);
InspectionViewModel? GetElement(InspectionSearchModel model);
InspectionViewModel? Insert(InspectionBindingModel model);
InspectionViewModel? Update(InspectionBindingModel model);
InspectionViewModel? Delete(InspectionBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using CarCenterContracts.BindingModels;
using CarCenterContracts.SearchModels;
using CarCenterContracts.ViewModels;
namespace CarCenterContracts.StoragesContracts
{
public interface IManagerStorage
{
List<ManagerViewModel> GetFullList();
List<ManagerViewModel> GetFilteredList(ManagerSearchModel model);
ManagerViewModel? GetElement(ManagerSearchModel model);
ManagerViewModel? Insert(ManagerBindingModel model);
ManagerViewModel? Update(ManagerBindingModel model);
ManagerViewModel? Delete(ManagerBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using CarCenterContracts.BindingModels;
using CarCenterContracts.SearchModels;
using CarCenterContracts.ViewModels;
namespace CarCenterContracts.StoragesContracts
{
public interface IPreSaleWorkStorage
{
List<PreSaleWorkViewModel> GetFullList();
List<PreSaleWorkViewModel> GetFilteredList(PreSaleWorkSearchModel model);
PreSaleWorkViewModel? GetElement(PreSaleWorkSearchModel model);
PreSaleWorkViewModel? Insert(PreSaleWorkBindingModel model);
PreSaleWorkViewModel? Update(PreSaleWorkBindingModel model);
PreSaleWorkViewModel? Delete(PreSaleWorkBindingModel model);
}
}

View File

@ -0,0 +1,21 @@
using CarCenterContracts.BindingModels;
using CarCenterContracts.SearchModels;
using CarCenterContracts.ViewModels;
namespace CarCenterContracts.StoragesContracts
{
public interface ISaleStorage
{
List<SaleViewModel> GetFullList();
List<SaleViewModel> GetFilteredList(SaleSearchModel model);
SaleViewModel? GetElement(SaleSearchModel model);
SaleViewModel? Insert(SaleBindingModel model);
SaleViewModel? Update(SaleBindingModel model);
SaleViewModel? Delete(SaleBindingModel model);
}
}

View File

@ -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;
}
}

View File

@ -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; }
}
}

View File

@ -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<int, ISaleModel> EmployeeSales { get; set; } = new();
public Dictionary<int, IInspectionModel> EmployeeInspection { get; set; }
public EmployeeViewModel() { }
[JsonConstructor]
public EmployeeViewModel(Dictionary<int, SaleViewModel> EmployeeSales)
{
this.EmployeeSales = EmployeeSales.ToDictionary(x => x.Key, x => x.Value as ISaleModel);
}
}
}

View File

@ -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<int, ICarModel> EquipmentCars { get; set; } = new();
}
}

View File

@ -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<int, ICarModel> InspectionCars { get; set; } = new();
}
}

View File

@ -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; }
}
}

View File

@ -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<int, ISaleModel> PreSaleWorkSales { get; set; } = new();
public Dictionary<int, ICarModel> PreSaleWorkCars { get; set; } = new();
public PreSaleWorkViewModel() { }
[JsonConstructor]
public PreSaleWorkViewModel(Dictionary<int, SaleViewModel> PreSaleWorkSales, Dictionary<int, CarViewModel> 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);
}
}
}

View File

@ -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; }
}
}

View File

@ -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; }

View File

@ -10,7 +10,7 @@ namespace CarCenterDataModels.Models
{
string СompletionName { get; }
string СompletionFeatures { get; }
double СompletionPrice { get; }
decimal СompletionPrice { get; }
int AdministratorId { get; }
public Dictionary<int, ICarSalesModel> СompletionCars { get; }
}