PIbd-21_MasenkinMS_Aircraft.../AircraftPlant/AircraftPlantFileImplement/Models/Client.cs
2024-04-07 00:02:29 +04:00

117 lines
3.3 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.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace AircraftPlantFileImplement.Models
{
/// <summary>
/// Сущность "Клиент"
/// </summary>
public class Client : IClientModel
{
/// <summary>
/// Идентификатор
/// </summary>
public int Id { get; set; }
/// <summary>
/// ФИО клиента
/// </summary>
public string ClientFIO { get; set; } = string.Empty;
/// <summary>
/// Логин (электронная почта)
/// </summary>
public string Email { get; set; } = string.Empty;
/// <summary>
/// Пароль
/// </summary>
public string Password { get; set; } = string.Empty;
/// <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="element"></param>
/// <returns></returns>
public static Client? Create(XElement element)
{
if (element == null)
{
return null;
}
return new Client()
{
Id = Convert.ToInt32(element.Attribute("Id")!.Value),
ClientFIO = element.Attribute("ClientFIO")!.Value,
Email = element.Attribute("Email")!.Value,
Password = element.Attribute("Password")!.Value
};
}
/// <summary>
/// Изменение модели клиента
/// </summary>
/// <param name="model"></param>
public void Update(ClientBindingModel? model)
{
if (model == null)
{
return;
}
ClientFIO = model.ClientFIO;
Password = model.Password;
Email = model.Email;
}
/// <summary>
/// Получение модели клиента
/// </summary>
public ClientViewModel GetViewModel => new()
{
Id = Id,
ClientFIO = ClientFIO,
Password = Password,
Email = Email
};
/// <summary>
/// Запись данных о модели клиента в файл
/// </summary>
public XElement GetXElement => new("Client",
new XAttribute("Id", Id),
new XElement("ClientFIO", ClientFIO),
new XElement("Email", Email),
new XElement("Password", Password));
}
}