forked from ddrilling/AsbCloudServer
1. Добавил репозиторий для уведомлений 2. Добавил сервисы для уведомлений
41 lines
1.3 KiB
C#
41 lines
1.3 KiB
C#
using System.Collections.Generic;
|
||
using System.Threading;
|
||
using AsbCloudApp.Data;
|
||
|
||
namespace AsbCloudApp.Services;
|
||
|
||
/// <summary>
|
||
/// Сервис для добавление уведомлений в очередь
|
||
/// </summary>
|
||
public interface INotificationSendingQueueService
|
||
{
|
||
/// <summary>
|
||
/// Флаг для проверки пустая ли коллекция
|
||
/// </summary>
|
||
bool IsEmpty { get; }
|
||
|
||
/// <summary>
|
||
/// Добавление одного уведомления в очередь
|
||
/// </summary>
|
||
/// <param name="notificationDto"></param>
|
||
void Enqueue(NotificationDto notificationDto);
|
||
|
||
/// <summary>
|
||
/// Добавление нескольких уведомлений в очередь
|
||
/// </summary>
|
||
/// <param name="notifications"></param>
|
||
void EnqueueRange(IEnumerable<NotificationDto> notifications);
|
||
|
||
/// <summary>
|
||
/// Извлечение элемента из очереди и его удаление
|
||
/// </summary>
|
||
/// <param name="notification"></param>
|
||
/// <returns></returns>
|
||
bool TryDequeue(out NotificationDto notification);
|
||
|
||
/// <summary>
|
||
/// Метод ожидания нового уведомления
|
||
/// </summary>
|
||
/// <param name="cancellationToken"></param>
|
||
void Wait(CancellationToken cancellationToken);
|
||
} |