From 0989b27c5f8fd7a0949d81e3df06c4c5b5a39fa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D1=83=D0=BA?= =?UTF-8?q?=D0=BB=D0=B5=D0=B2?= Date: Tue, 30 Apr 2024 19:30:41 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=81=20=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B0=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CarCenterDatabaseImplement.csproj | 4 -- CarCenterDatabaseImplement/Models/Client.cs | 50 +++++++++++++++++++ CarCenterDatabaseImplement/Models/Director.cs | 32 ++++++++++++ 3 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 CarCenterDatabaseImplement/Models/Client.cs create mode 100644 CarCenterDatabaseImplement/Models/Director.cs diff --git a/CarCenterDatabaseImplement/CarCenterDatabaseImplement.csproj b/CarCenterDatabaseImplement/CarCenterDatabaseImplement.csproj index aed3a89..56543e4 100644 --- a/CarCenterDatabaseImplement/CarCenterDatabaseImplement.csproj +++ b/CarCenterDatabaseImplement/CarCenterDatabaseImplement.csproj @@ -6,10 +6,6 @@ enable - - - - diff --git a/CarCenterDatabaseImplement/Models/Client.cs b/CarCenterDatabaseImplement/Models/Client.cs new file mode 100644 index 0000000..f224d55 --- /dev/null +++ b/CarCenterDatabaseImplement/Models/Client.cs @@ -0,0 +1,50 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.Extensions; +using CarCenterContracts.ViewModels; +using CarCenterDataModels; +using System.ComponentModel.DataAnnotations; + +namespace CarCenterDatabaseImplement.Models +{ + public class Client : IClientModel + { + [Required] + public int DirectorId { get; private set; } + [Required] + public string Name { get; private set; } = string.Empty; + [Required] + public double Price { get; private set; } + [Required] + public int Course { get; private set; } + + public int Id { get; private set; } + [Required] + public Director? Director { get; private set; } + + [Required] + public List Cars { get; private set; } = new(); + + + public static Client Create(ClientBindingModel model) => model.CastWithCommonProperties(); + + public static implicit operator ClientViewModel?(Client? model) + { + if (model == null) + { + return null; + } + var res = model.CastWithCommonProperties(); + res.DirectorLogin = model.Director?.Login ?? string.Empty; + res.Cars = model.Cars.Select(x => (CarViewModel)x.Car).ToList(); + return res; + } + + public void Update(ClientBindingModel model) + { + Price = model.Price; + Course = model.Course; + } + + public ClientViewModel GetViewModel() => this.CastWithCommonProperties(); + } +} diff --git a/CarCenterDatabaseImplement/Models/Director.cs b/CarCenterDatabaseImplement/Models/Director.cs new file mode 100644 index 0000000..b4ab62c --- /dev/null +++ b/CarCenterDatabaseImplement/Models/Director.cs @@ -0,0 +1,32 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.ViewModels; +using CarCenterDataModels; +using System.ComponentModel.DataAnnotations; +using CarCenterContracts.Extensions; + +namespace CarCenterDatabaseImplement.Models +{ + public class Director : IDirectorModel + { + public int Id { get; private set; } + [Required] + public string FirstName { get; private set; } = string.Empty; + [Required] + public string LastName { get; private set; } = string.Empty; + [Required] + public string Login { get; private set; } = string.Empty; + [Required] + public string Password { get; private set; } = string.Empty; + + public string PhoneNumber { get; set; } = string.Empty; + + [Required] + public List? Clients { get; private set; } + [Required] + public List? Requirements { get; private set; } + + public static Director Create(DirectorBindingModel model) => model.CastWithCommonProperties(); + + public static implicit operator DirectorViewModel?(Director? model) => model?.CastWithCommonProperties(); + } +}