DD.WellWorkover.Cloud/AsbCloudApp/Data/User/UserDto.cs

94 lines
3.1 KiB
C#
Raw Normal View History

2023-02-20 12:18:45 +05:00
using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.User
{
2022-06-02 12:35:51 +05:00
/// <summary>
/// DTO пользователя платформы
/// </summary>
2022-04-11 18:00:34 +05:00
public class UserDto : IId
{
2022-06-02 12:35:51 +05:00
/// <inheritdoc/>
public int Id { get; set; }
2022-06-02 12:35:51 +05:00
/// <summary>
/// логин
/// </summary>
2023-03-10 05:42:54 +05:00
[Required(ErrorMessage = "Логин не должен быть пустым")]
[StringLength(50, MinimumLength = 1, ErrorMessage = "Допустимая длина логина от 1 до 50 символов")]
2023-02-20 12:18:45 +05:00
public string Login { get; set; } = null!;
2022-06-02 12:35:51 +05:00
/// <summary>
/// Имя
/// </summary>
2023-03-10 05:42:54 +05:00
[StringLength(50, MinimumLength = 0, ErrorMessage = "Допустимая длина имени от 1 до 50 символов")]
2023-02-20 12:18:45 +05:00
public string? Name { get; set; }
2022-06-02 12:35:51 +05:00
/// <summary>
/// Фамилия
/// </summary>
2023-03-10 05:42:54 +05:00
[StringLength(50, MinimumLength = 0, ErrorMessage = "Допустимая длина фамилии от 1 до 50 символов")]
2023-02-20 12:18:45 +05:00
public string? Surname { get; set; }
2022-06-02 12:35:51 +05:00
/// <summary>
/// Отчество
/// </summary>
2023-03-10 05:42:54 +05:00
[StringLength(50, MinimumLength = 0, ErrorMessage = "Допустимая длина отчества от 1 до 50 символов")]
2023-02-20 12:18:45 +05:00
public string? Patronymic { get; set; }
2022-06-02 12:35:51 +05:00
/// <summary>
/// Email
/// </summary>
2023-02-20 12:18:45 +05:00
[Required]
2023-03-10 05:42:54 +05:00
[StringLength(260, MinimumLength = 1, ErrorMessage = "Допустимая длина email от 1 до 260 символов")]
2023-02-20 12:18:45 +05:00
public string Email { get; set; } = null!;
2022-06-02 12:35:51 +05:00
/// <summary>
/// Phone
/// </summary>
2023-03-10 05:42:54 +05:00
[StringLength(50, MinimumLength = 1, ErrorMessage = "Допустимая длина телефона от 1 до 50 символов")]
2023-02-20 12:18:45 +05:00
public string? Phone { get; set; }
2022-06-02 12:35:51 +05:00
/// <summary>
/// Должность
/// </summary>
2023-03-10 05:42:54 +05:00
[StringLength(100, MinimumLength = 1, ErrorMessage = "Допустимая длина должности от 1 до 100 символов")]
2023-02-20 12:18:45 +05:00
public string? Position { get; set; }
2022-06-02 12:35:51 +05:00
/// <summary>
/// Id компании
/// </summary>
2023-02-20 12:18:45 +05:00
[Required]
public int IdCompany { get; set; }
2022-06-02 12:35:51 +05:00
/// <summary>
/// Id состояния пользователя
/// </summary>
public short? IdState { get; set; }
2022-06-02 12:35:51 +05:00
/// <summary>
/// DTO компании
/// </summary>
2023-02-20 12:18:45 +05:00
public CompanyDto? Company { get; set; }
2022-10-27 15:49:22 +05:00
/// <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;
}
}
}