using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.Logging;
using xCommons.Extensions;
using xPushService.Base;
using xPushService.Constants;
using xStringService.Models.Dtos;
namespace xTermsAndConditionsService.Hubs
{
///
/// a Hub for Notifing Terms and Conditions Events to Connected Clients ...
///
public class XTermsHub : XBaseHub
{
public XTermsHub(
ILogger logger
) : base(logger)
{
}
//
#region Hub Actions ...
///
/// Add Specified Terms and Conditions ...
///
///
///
///
public async Task Add(
XStringDto entity,
CancellationToken cancellationToken = default
)
{
//
var connectionId = Context.ConnectionId;
if (!connectionId.IsNullOrEmpty())
{
//
await Clients
.AllExcept(connectionId)
.SendAsync(
XBaseEntityHubAction.Add.GetStringValue(),
entity.ToJSON(camelCase: true),
connectionId,
cancellationToken
);
}
}
///
/// Deleted Specified Terms and Conditions ...
///
///
///
///
public async Task Delete(
XStringDto entity,
CancellationToken cancellationToken = default
)
{
//
var connectionId = Context.ConnectionId;
if (!connectionId.IsNullOrEmpty())
{
//
await Clients
.AllExcept(connectionId)
.SendAsync(
XBaseEntityHubAction.Delete.GetStringValue(),
entity.ToJSON(camelCase: true),
connectionId,
cancellationToken
);
}
}
///
/// Notify an Entity Updated ...
///
///
///
///
public async Task Update(
XStringDto entity,
CancellationToken cancellationToken = default
)
{
//
var connectionId = Context.ConnectionId;
if (!connectionId.IsNullOrEmpty())
{
//
await Clients
.AllExcept(connectionId)
.SendAsync(
XBaseEntityHubAction.Update.GetStringValue(),
entity.ToJSON(camelCase: true),
connectionId,
cancellationToken
);
}
}
#endregion
}
}