DD.WellWorkover.Cloud/AsbCloudApp/Data/NotificationDto.cs
Степанов Дмитрий Александрович 4b2d4f1bba Отправка уведомлений через email + рефакторинг
1. Адаптировал EmailService под сервис транспорта отправки уведомлений по Email
2. Заменил использование EmailService на NotificationService
3. Поправил тесты
4. Создал запрос для отправки уведомлений
2023-07-19 14:24:22 +05:00

81 lines
1.7 KiB
C#

using System;
namespace AsbCloudApp.Data;
/// <summary>
/// DTO уведомления
/// </summary>
public class NotificationDto : IId
{
/// <summary>
/// Id уведомления
/// </summary>
public int Id { get; set; }
/// <summary>
/// Id получателя уведомления
/// </summary>
public int IdUser { get; set; }
/// <summary>
/// Email получателя уведомления
/// </summary>
public string? UserEmail { get; set; }
/// <summary>
/// Id категории уведомления
/// </summary>
public int IdNotificationCategory { get; set; }
/// <summary>
/// Заголовок уведомления
/// </summary>
public string Title { get; set; } = null!;
/// <summary>
/// Сообщение уведомления
/// </summary>
public string Message { get; set; } = null!;
/// <summary>
/// Дата отправки уведомления
/// </summary>
public DateTime? SentDate { get; set; }
/// <summary>
/// Дата прочтения уведомления
/// </summary>
public DateTime? ReadDate { get; set; }
/// <summary>
/// Состояние уведомления
/// 0 - Зарегистрировано,
/// 1 - Отправлено,
/// 2 - Прочитано
/// </summary>
public int IdState
{
get
{
if (SentDate is not null && ReadDate is not null)
return 2;
if (SentDate is not null)
return 1;
return 0;
}
}
/// <summary>
/// Id типа доставки уведомления
/// 0 - SignalR
/// 1 - Email
/// </summary>
public int IdTransportType { get; set; }
/// <summary>
/// DTO категории уведомления
/// </summary>
public NotificationCategoryDto NotificationCategory { get; set; } = null!;
}