forked from ddrilling/AsbCloudServer
Степанов Дмитрий Александрович
5f459b79b8
1. Добавил отправку всех неотправленных уведомлений и кол-во непрочитаннах уведомлений при первом подключении 2. При изменении статуса прочтения уведомления, клиенту отправляется информация о том сколько непрочитанных уведомлений ещё есть. 3. Добавил объект NotificationMessage, который отправляется клиенту. 4. Сделал небольшой рефакторинг
62 lines
2.1 KiB
C#
62 lines
2.1 KiB
C#
using System.Collections.Generic;
|
|
using AsbCloudApp.Data;
|
|
using AsbCloudApp.Requests;
|
|
using AsbCloudApp.Services;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace AsbCloudApp.Repositories;
|
|
|
|
/// <summary>
|
|
/// Репозиторий для уведомлений
|
|
/// </summary>
|
|
public interface INotificationRepository : ICrudRepository<NotificationDto>
|
|
{
|
|
/// <summary>
|
|
/// Получение уведомлений по параметрам
|
|
/// </summary>
|
|
/// <param name="idUser"></param>
|
|
/// <param name="request"></param>
|
|
/// <param name="cancellationToken"></param>
|
|
/// <returns></returns>
|
|
Task<PaginationContainer<NotificationDto>> GetNotificationsAsync(int idUser,
|
|
NotificationRequest request,
|
|
CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Получение всех уведомлений
|
|
/// </summary>
|
|
/// <param name="idUser"></param>
|
|
/// <param name="isSent"></param>
|
|
/// <param name="idTransportType"></param>
|
|
/// <param name="cancellationToken"></param>
|
|
/// <returns></returns>
|
|
Task<IEnumerable<NotificationDto>> GetAllAsync(int? idUser, bool? isSent, int? idTransportType,
|
|
CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Обновление уведомлений
|
|
/// </summary>
|
|
/// <param name="notifications"></param>
|
|
/// <param name="cancellationToken"></param>
|
|
/// <returns></returns>
|
|
Task<int> UpdateRangeAsync(IEnumerable<NotificationDto> notifications, CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Удаление уведомлений по параметрам
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <param name="cancellationToken"></param>
|
|
/// <returns></returns>
|
|
Task<int> DeleteAsync(NotificationDeleteRequest request,
|
|
CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Получение количества непрочтенных уведомлений
|
|
/// </summary>
|
|
/// <param name="idUser"></param>
|
|
/// <param name="idTransportType"></param>
|
|
/// <param name="cancellationToken"></param>
|
|
/// <returns></returns>
|
|
Task<int> GetUnreadCountAsync(int idUser, int idTransportType, CancellationToken cancellationToken);
|
|
} |