using HotelContracts.BindingModels; using HotelContracts.ViewModels; using HotelDataModels.Models; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HotelDataBaseImplement.Models { public class Administrator : IAdministratorModel { public int Id { get; private set; } [Required] public string AdministratorFIO { get; set; } = string.Empty; [Required] public string AdministratorPhone { get; set; } = string.Empty; [Required] public string AdministratorLogin { get; set; } = string.Empty; [Required] public string AdministratorPassword { get; set; } = string.Empty; [Required] public string AdministratorEmail { get; set; } = string.Empty; [ForeignKey("AdministratorId")] public virtual List Rooms { get; set; } = new(); [ForeignKey("AdministratorId")] public virtual List Dinners { get; set; } = new(); [ForeignKey("AdministratorId")] public virtual List ConferenceBookings { get; set; } = new(); public static Administrator? Create(AdministratorBindingModel model) { if (model == null) { return null; } return new Administrator() { Id = model.Id, AdministratorFIO = model.AdministratorFIO, AdministratorEmail = model.AdministratorEmail, AdministratorPassword = model.AdministratorPassword, AdministratorLogin = model.AdministratorLogin, AdministratorPhone = model.AdministratorPhone }; } public static Administrator Create(AdministratorViewModel model) { return new Administrator { Id = model.Id, AdministratorFIO = model.AdministratorFIO, AdministratorEmail = model.AdministratorEmail, AdministratorPassword = model.AdministratorPassword, AdministratorLogin = model.AdministratorLogin, AdministratorPhone = model.AdministratorPhone }; } public void Update(AdministratorBindingModel model) { if (model == null) { return; } AdministratorFIO = model.AdministratorFIO; AdministratorEmail = model.AdministratorEmail; AdministratorPassword = model.AdministratorPassword; AdministratorLogin = model.AdministratorLogin; AdministratorPhone = model.AdministratorPhone; } public AdministratorViewModel GetViewModel => new() { Id = Id, AdministratorFIO = AdministratorFIO, AdministratorEmail = AdministratorEmail, AdministratorPassword = AdministratorPassword, AdministratorLogin = AdministratorLogin, AdministratorPhone = AdministratorPhone }; } }