Files
adas-core/adas-core.Application/Services/Interfaces/IClientMessageService.cs
T
2026-06-26 10:29:23 +02:00

35 lines
1.9 KiB
C#

using adas_core.Domain.Enums;
using adas_core.Domain.Models;
using adas_core.Domain.Models.SignalR;
namespace adas_core.Application.Services.Interfaces;
public interface IClientMessageService
{
/// <summary>
/// Asynchronously sends a message to the specified receiver, optionally categorized by an operation type.
/// </summary>
/// <param name="receiverId">The identifier of the intended message receiver.</param>
/// <param name="type">The optional operation type used to classify the message.</param>
/// <param name="msg">The optional message payload to be sent.</param>
/// <returns>A task that represents the asynchronous send operation.</returns>
Task SendAsync(string receiverId, OperationType? type, object? msg);
/// <summary>
/// Asynchronously broadcasts a message of the specified operation type to all connected recipients.
/// </summary>
/// <param name="type">The operation type that classifies the broadcast message.</param>
/// <param name="msg">The message payload to send, or <c>null</c> when no payload is required.</param>
/// <returns>A task that represents the asynchronous broadcast operation.</returns>
Task SendToAllAsync(OperationType type, object? msg);
/// <summary>
/// Processes an incoming message within the context of the specified connection.
/// </summary>
/// <param name="msg">The message to be processed.</param>
/// <param name="contextConnectionId">The identifier of the connection context associated with the message.</param>
Task ProcessMessage(Message msg, string contextConnectionId);
/// <summary>
/// Sends an update message to the specified list of patient location boxes.
/// </summary>
/// <param name="boxes">The list of patient locations that will receive the update message.</param>
void SendUpdateMessageToBoxes(List<PatientLocation> boxes);
}