DD.WellWorkover.Cloud/AsbCloudApp/Data/User/UserDto.cs
2023-09-28 17:09:44 +05:00

97 lines
3.2 KiB
C#

using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.User
{
/// <summary>
/// DTO пользователя платформы
/// </summary>
public class UserDto : IId
{
/// <inheritdoc/>
public int Id { get; set; }
/// <summary>
/// логин
/// </summary>
[Required(ErrorMessage = "Логин не должен быть пустым")]
[StringLength(50, MinimumLength = 3, ErrorMessage = "Допустимая длина логина от 3 до 50 символов")]
public string Login { get; set; } = null!;
/// <summary>
/// Имя
/// </summary>
[StringLength(50, MinimumLength = 0, ErrorMessage = "Допустимая длина имени от 1 до 50 символов")]
public string? Name { get; set; }
/// <summary>
/// Фамилия
/// </summary>
[StringLength(50, MinimumLength = 0, ErrorMessage = "Допустимая длина фамилии от 1 до 50 символов")]
public string? Surname { get; set; }
/// <summary>
/// Отчество
/// </summary>
[StringLength(50, MinimumLength = 0, ErrorMessage = "Допустимая длина отчества от 1 до 50 символов")]
public string? Patronymic { get; set; }
/// <summary>
/// Email
/// </summary>
[Required]
[StringLength(260, MinimumLength = 3, ErrorMessage = "Допустимая длина email от 3 до 260 символов")]
public string Email { get; set; } = null!;
/// <summary>
/// Phone
/// </summary>
[StringLength(50, MinimumLength = 1, ErrorMessage = "Допустимая длина телефона от 1 до 50 символов")]
public string? Phone { get; set; }
/// <summary>
/// Должность
/// </summary>
[StringLength(100, MinimumLength = 1, ErrorMessage = "Допустимая длина должности от 1 до 100 символов")]
public string? Position { get; set; }
/// <summary>
/// Id компании
/// </summary>
[Required]
public int IdCompany { get; set; }
/// <summary>
/// Id состояния пользователя
/// 0 - не активен,
/// 1 - активен,
/// 2 - заблокирован
/// </summary>
public short IdState { get; set; }
/// <summary>
/// DTO компании
/// </summary>
public CompanyDto? Company { get; set; }
/// <summary>
/// Получение отображаемого имени
/// </summary>
/// <returns></returns>
public string MakeDisplayName()
{
if (string.IsNullOrEmpty(Surname))
return Login;
var s = Surname;
if (!string.IsNullOrEmpty(Name))
{
s += $"{Name[0]}.";
if (!string.IsNullOrEmpty(Patronymic))
s += $" {Patronymic[0]}.";
}
return s;
}
}
}