PIbd-21_MasenkinMS_Aircraft.../AircraftPlant/AircraftPlantDatabaseImplement/Models/Client.cs
2024-05-04 22:30:27 +04:00

103 lines
2.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using AircraftPlantContracts.BindingModels;
using AircraftPlantContracts.ViewModels;
using AircraftPlantDataModels.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 AircraftPlantDatabaseImplement.Models
{
/// <summary>
/// Сущность "Клиент"
/// </summary>
public class Client : IClientModel
{
/// <summary>
/// Идентификатор
/// </summary>
public int Id { get; private set; }
/// <summary>
/// ФИО клиента
/// </summary>
[Required]
public string ClientFIO { get; set; } = string.Empty;
/// <summary>
/// Логин (электронная почта)
/// </summary>
[Required]
public string Email { get; set; } = string.Empty;
/// <summary>
/// Пароль
/// </summary>
[Required]
public string Password { get; set; } = string.Empty;
/// <summary>
/// Связь с заказами
/// </summary>
[ForeignKey("ClientId")]
public virtual List<Order> Orders { get; set; } = new();
/// <summary>
/// Связь с письмами
/// </summary>
[ForeignKey("ClientId")]
public virtual List<Message> Messages { get; set; } = new();
/// <summary>
/// Создание модели клиента
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public static Client? Create(ClientBindingModel model)
{
if (model == null)
{
return null;
}
return new Client()
{
Id = model.Id,
ClientFIO = model.ClientFIO,
Email = model.Email,
Password = model.Password
};
}
/// <summary>
/// Изменение модели клиента
/// </summary>
/// <param name="model"></param>
public void Update(ClientBindingModel model)
{
if (model == null)
{
return;
}
ClientFIO = model.ClientFIO;
Email = model.Email;
Password = model.Password;
}
/// <summary>
/// Получение модели клиента
/// </summary>
public ClientViewModel GetViewModel => new()
{
Id = Id,
ClientFIO = ClientFIO,
Email = Email,
Password = Password
};
}
}