forked from ddrilling/AsbCloudServer
94 lines
3.1 KiB
C#
94 lines
3.1 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 = 1, ErrorMessage = "Допустимая длина логина от 1 до 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 = 1, ErrorMessage = "Допустимая длина email от 1 до 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 состояния пользователя
|
|
/// </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;
|
|
}
|
|
}
|
|
}
|