using BeautySaloonContracts.BindingModels; using BeautySaloonContracts.ViewModels; using BeautySaloonDataModels; using System; using System.ComponentModel.DataAnnotations.Schema; using System.Numerics; namespace BeautySaloonDatabaseImplement; /// /// Сущность заказы /// public partial class Order : IOrderModel { /// /// Уникальный идентификатор /// public int Id { get; set; } /// /// Дата /// public DateOnly Date { get; set; } /// /// Сумма /// public decimal Sum { get; set; } /// /// Идентификатор клиента /// public int ClientId { get; set; } /// /// Идентификатор сотрудника /// public int EmployeeId { get; set; } public virtual Client Client { get; set; } = null!; public virtual Employee Employee { get; set; } = null!; public virtual ServiceOrder? ServiceOrder { get; set; } public Dictionary _orderServices = null; public virtual List Services { get; set; } = new(); public Dictionary OrderServices { get { if (ServiceOrder != null) { _orderServices = Services .ToDictionary(x => x.ServiceId, x => (x.Date, x.Service as IServiceModel, x.Employee as IEmployeeModel)); } return _orderServices; } } public static Order? Create(OrderBindingModel? model) { if (model == null) { return null; } return new Order() { Id = model.Id, Date = model.Date, Sum = model.Sum, ClientId = model.ClientId, EmployeeId = model.EmployeeId }; } public OrderViewModel GetViewModel => new() { Id = Id, Date = Date, Sum = Sum, ClientId = ClientId, EmployeeId = EmployeeId, ClientName = Client.Name, EmployeeName = Employee.Name, ClientPhone = Client.Phone, EmployeePhone = Employee.Phone }; }