diff --git a/SecuritySystem/SecuritySystemDatabaseImplement/Models/Client.cs b/SecuritySystem/SecuritySystemDatabaseImplement/Models/Client.cs new file mode 100644 index 0000000..390d53c --- /dev/null +++ b/SecuritySystem/SecuritySystemDatabaseImplement/Models/Client.cs @@ -0,0 +1,62 @@ +using SecuritySystemContracts.BindingModels; +using SecuritySystemContracts.ViewModels; +using SecuritySystemDataModels.Models; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace SecuritySystemDatabaseImplement.Models +{ + public class Client : IClientModel + { + public int Id { get; private set; } + [Required] + public string ClientFIO { get; private set; } = string.Empty; + [Required] + public string Email { get; private set; } = string.Empty; + [Required] + public string Password { get; private set; } = string.Empty; + [ForeignKey("ClientId")] + public virtual List Orders { get; set; } = new(); + public static Client? Create(ClientBindingModel model) + { + if (model == null) + { + return null; + } + return new Client() + { + Id = model.Id, + Email = model.Email, + Password = model.Password, + ClientFIO = model.ClientFIO + }; + } + public static Client Create(ClientViewModel model) + { + return new Client + { + Id = model.Id, + Email = model.Email, + Password = model.Password, + ClientFIO = model.ClientFIO + }; + } + public void Update(ClientBindingModel model) + { + if (model == null) + { + return; + } + Email = model.Email; + Password = model.Password; + ClientFIO = model.ClientFIO; + } + public ClientViewModel GetViewModel => new() + { + Id = Id, + Email = Email, + Password = Password, + ClientFIO = ClientFIO + }; + } +}