using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.SignalR; using Microsoft.Extensions.Logging; using xCommons.Attributes; using xCommons.Configurations; using xCommons.Extensions; using xCommons.Providers; using xDataService.Interfaces; using xIdentityService.Controllers; using xIdentityService.Interfaces; using xModels.Base; using xPushService.Base; using xPushService.Constants; namespace xApi.Base { // // TODO: Fix this ... // [ApiController] // [ApiVersion("1.0")] // [RequireXPowered(true)] // [Route("api/v{version:apiVersion}/entities/[controller]")] // public abstract class XIBaseV1EntityController : XIBaseEntityController // where TEntity : XBaseEntity // { // // // #region Constructor ... // protected XIBaseV1EntityController( // ILogger> logger, // XAppConfiguration appConfiguration, // IXIdentityProvider identityProvider, // XValidationProvider validationProvider, // IXBaseRepository repository // ) : base( // logger, // appConfiguration, // identityProvider, // validationProvider, // repository // ) // { } // #endregion // } // public abstract class XIBaseV1EntityHubController : XIBaseV1EntityController // where TEntity : XBaseEntity // { // // // #region Props ... // public IHubContext> Hub { get; } // #endregion // // // #region Constructor ... // protected XIBaseV1EntityHubController( // ILogger> logger, // XAppConfiguration appConfiguration, // IXIdentityProvider identityProvider, // XValidationProvider validationProvider, // IXBaseRepository repository, // IHubContext> hub = null // ) : base( // logger, // appConfiguration, // identityProvider, // validationProvider, // repository // ) // { // Hub = hub; // } // #endregion // // // #region Hub ... // [NonAction] // public async Task SendPush( // string action, // string payLoad // ) // { // // // var actions = new List // { // XBaseEntityHubAction.Add.GetStringValue(), // XBaseEntityHubAction.Update.GetStringValue(), // XBaseEntityHubAction.Delete.GetStringValue(), // XBaseEntityHubAction.AddMany.GetStringValue(), // XBaseEntityHubAction.DeleteMany.GetStringValue(), // XBaseEntityHubAction.UpdateMany.GetStringValue(), // XBaseEntityHubAction.AddOrUpdate.GetStringValue(), // }; // // // // Validate ... // var isValid = // !Hub.IsNull() && // !action.IsNullOrEmpty() && // !payLoad.IsNullOrEmpty() && // actions.Contains(action); // if (!isValid) // { // return; // } // // // // Retrieve Connection Id ... // var connectionId = GetConnectionId(); // var clients = Hub.Clients.All; // if (!connectionId.IsNullOrEmpty()) // { // clients = Hub.Clients.AllExcept(connectionId); // } // // // await clients.SendAsync(action, payLoad, connectionId); // } // #endregion // } }