forked from ddrilling/AsbCloudServer
Степанов Дмитрий Александрович
1b560dd0a2
1. Изменил сущность уведомлений. Добавил дату регистрации уведомления. 2. Добавил миграцию. 3. Изменил репозитории. Убрал метод для обновления коллекции уведомлений. 4. Поправил запрос для отправки уведомлений и метод контроллера. 5. Поправил логику обновления уведомления. Теперь обновление состояния уведомления происходит в транспорте, после успешной отправки уведомления.
87 lines
1.9 KiB
C#
87 lines
1.9 KiB
C#
using System;
|
|
using AsbCloudApp.Data.User;
|
|
|
|
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>
|
|
/// 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 RegistrationDate { get; set; }
|
|
|
|
/// <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!;
|
|
|
|
/// <summary>
|
|
/// DTO получателя уведомления
|
|
/// </summary>
|
|
public UserDto User { get; set; } = null!;
|
|
} |