using ComputerHardwareStoreContracts.BindingModels; using ComputerHardwareStoreContracts.ViewModels; using ComputerHardwareStoreDataModels.Models; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace ComputerHardwareStoreDatabaseImplement.Models { public class StoreKeeper : IStoreKeeperModel { public int Id { get; private set; } [Required] public string Name { get; private set; } = string.Empty; [Required] public string Login { get; private set; } = string.Empty; [Required] public string Password { get; private set; } = string.Empty; [ForeignKey("StoreKeeperId")] public virtual List Products { get; set; } = new(); [ForeignKey("StoreKeeperId")] public virtual List Components { get; set; } = new(); public static StoreKeeper? Create(ComputerHardwareStoreDBContext context, StoreKeeperBindingModel model) { if (model == null) { return null; } return new StoreKeeper() { Id = model.Id, Name = model.Name, Login = model.Login, Password = model.Password, }; } public void Update(StoreKeeperBindingModel model) { if (model == null) { return; } Name = string.IsNullOrEmpty(model.Name) ? Name : model.Name; Password = string.IsNullOrEmpty(model.Password) ? Password : model.Password; } public StoreKeeperViewModel GetViewModel => new() { Id = Id, Name = Name, Login = Login, Password = Password }; } }