88 lines
2.6 KiB
C#
Raw Normal View History

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<Room> Rooms { get; set; } = new();
[ForeignKey("AdministratorId")]
public virtual List<Dinner> Dinners { get; set; } = new();
[ForeignKey("AdministratorId")]
public virtual List<ConferenceBooking> 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
};
}
}