diff --git a/HardwareShop/HardwareShopDatabaseImplement/Models/User.cs b/HardwareShop/HardwareShopDatabaseImplement/Models/User.cs index cffda4a..a13627a 100644 --- a/HardwareShop/HardwareShopDatabaseImplement/Models/User.cs +++ b/HardwareShop/HardwareShopDatabaseImplement/Models/User.cs @@ -1,6 +1,11 @@ using HardwareShopDataModels.Models; using HardwareShopDataModels.Enums; -using System.ComponentModel; +using HardwareShopContracts.BindingModels; +using HardwareShopContracts.ViewModels; +using HardwareShopDatabaseImplement.Models.Storekeeper; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; +using HardwareShopDatabaseImplement.Models.Worker; namespace HardwareShopDatabaseImplement.Models { @@ -8,12 +13,71 @@ namespace HardwareShopDatabaseImplement.Models { public int Id { get; set; } + [Required] public string Login { get; set; } = string.Empty; + [Required] public string Email { get; set; } = string.Empty; + [Required] public string Password { get; set; } = string.Empty; + [Required] public UserRole Role { get; set; } = UserRole.Неизвестен; + + [ForeignKey("ClientId")] + public virtual List Orders { get; set; } = new(); + + [ForeignKey("ClientId")] + public virtual List Builds { get; set; } = new(); + + [ForeignKey("ClientId")] + public virtual List Comments { get; set; } = new(); + + [ForeignKey("ClientId")] + public virtual List Purchases { get; set; } = new(); + + [ForeignKey("ClientId")] + public virtual List Components { get; set; } = new(); + + [ForeignKey("ClientId")] + public virtual List Goods { get; set; } = new(); + + + public static User? Create(UserBindingModel? model) + { + if (model == null) + { + return null; + } + return new User() + { + Id = model.Id, + Login = model.Login, + Email = model.Email, + Password = model.Password, + Role = model.Role + }; + } + + public void Update(UserBindingModel? model) + { + if (model == null) + { + return; + } + Login = model.Login; + Password = model.Password; + Email = model.Email; + } + + public UserViewModel GetViewModel => new() + { + Id = Id, + Login = Login, + Email = Email, + Password = Password, + Role = Role, + }; } } \ No newline at end of file diff --git a/HardwareShop/HardwareShopDatabaseImplement/Models/Worker/Purchase.cs b/HardwareShop/HardwareShopDatabaseImplement/Models/Worker/Purchase.cs index 7fd502c..856450f 100644 --- a/HardwareShop/HardwareShopDatabaseImplement/Models/Worker/Purchase.cs +++ b/HardwareShop/HardwareShopDatabaseImplement/Models/Worker/Purchase.cs @@ -3,6 +3,7 @@ using HardwareShopContracts.ViewModels; using HardwareShopDatabaseImplement.Models.ManyToMany; using HardwareShopDataModels.Enums; using HardwareShopDataModels.Models; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Diagnostics; @@ -12,12 +13,15 @@ namespace HardwareShopDatabaseImplement.Models.Worker { public int Id { get; set; } + [Required] public decimal Sum { get; set; } + [Required] public PurchaseStatus PurchaseStatus { get; set; } = PurchaseStatus.Неизвестен; public DateTime? DatePurchase { get; set; } + [Required] public int UserId { get; set; } public virtual User User { get; set; }