public virtual IHttpActionResult BroadcastEvents(string zoneId = null, string contextId = null) { var eventService = Service as IEventService <TMultiple>; bool eventsSupported = (eventService != null); if (!eventsSupported) { return(BadRequest("Support for SIF Events has not been implemented.")); } IHttpActionResult result; try { IRegistrationService registrationService = RegistrationManager.GetProviderRegistrationService( ProviderSettings, sessionService); if (registrationService is NoRegistrationService) { result = BadRequest("SIF Events are only supported in a BROKERED environment."); } else { IEventIterator <TMultiple> eventIterator = eventService.GetEventIterator(zoneId, contextId); if (eventIterator == null) { result = BadRequest("SIF Events implementation is not valid."); } else { Model.Infrastructure.Environment environment = registrationService.Register(); // Retrieve the current Authorisation Token. AuthorisationToken token = registrationService.AuthorisationToken; // Retrieve the EventsConnector endpoint URL. string url = EnvironmentUtils.ParseServiceUrl( environment, ServiceType.UTILITY, InfrastructureServiceNames.eventsConnector); while (eventIterator.HasNext()) { SifEvent <TMultiple> sifEvent = eventIterator.GetNext(); var requestHeaders = new NameValueCollection() { { EventParameterType.eventAction.ToDescription(), sifEvent.EventAction.ToDescription() }, { EventParameterType.messageId.ToDescription(), sifEvent.Id.ToString() }, { EventParameterType.messageType.ToDescription(), "EVENT" }, { EventParameterType.serviceName.ToDescription(), $"{TypeName}s" } }; switch (sifEvent.EventAction) { case EventAction.UPDATE_FULL: requestHeaders.Add(EventParameterType.Replacement.ToDescription(), "FULL"); break; case EventAction.UPDATE_PARTIAL: requestHeaders.Add(EventParameterType.Replacement.ToDescription(), "PARTIAL"); break; } string requestBody = SerialiseEvents(sifEvent.SifObjects); HttpUtils.PostRequest( url, token, requestBody, ProviderSettings.CompressPayload, contentTypeOverride: ContentType.ToDescription(), acceptOverride: Accept.ToDescription(), requestHeaders: requestHeaders); } result = Ok(); } } } catch (Exception e) { result = InternalServerError(e); } return(result); }
/// <summary> /// Create a Consumer instance based upon the Environment passed. /// </summary> /// <param name="environment">Environment object.</param> public Consumer(Model.Infrastructure.Environment environment) { environmentTemplate = EnvironmentUtils.MergeWithSettings(environment, SettingsManager.ConsumerSettings); RegistrationService = new RegistrationService(SettingsManager.ConsumerSettings, SessionsManager.ConsumerSessionService); }
/// <summary> /// <see cref="EventConsumer{TSingle,TMultiple,TPrimaryKey}">EventConsumer</see> /// </summary> protected BasicEventConsumer(Model.Infrastructure.Environment environment, IFrameworkSettings settings = null) : base(environment, settings) { }
public StudentSchoolEnrollmentConsumer( Model.Infrastructure.Environment environment, IFrameworkSettings settings = null) : base(environment, settings) { }
/// <summary> /// Create a Consumer instance identified by the parameters passed. /// </summary> /// <param name="applicationKey">Application key.</param> /// <param name="instanceId">Instance ID.</param> /// <param name="userToken">User token.</param> /// <param name="solutionId">Solution ID.</param> public Consumer(string applicationKey, string instanceId = null, string userToken = null, string solutionId = null) { Model.Infrastructure.Environment environment = new Model.Infrastructure.Environment(applicationKey, instanceId, userToken, solutionId); environmentTemplate = EnvironmentUtils.MergeWithSettings(environment, SettingsManager.ConsumerSettings); RegistrationService = new RegistrationService(SettingsManager.ConsumerSettings, SessionsManager.ConsumerSessionService); }
/// <summary> /// <see cref="Consumer{TSingle,TMultiple,TPrimaryKey}.Consumer(Model.Infrastructure.Environment)">Consumer</see> /// </summary> public BasicConsumer(Model.Infrastructure.Environment environment) : base(environment) { }
public StudentPersonalEventConsumer(Model.Infrastructure.Environment environment) : base(environment) { }
public StudentPersonalConsumer( Model.Infrastructure.Environment environment, IFrameworkSettings settings = null) : base(environment, settings) { }
public StudentSchoolEnrollmentConsumer(Model.Infrastructure.Environment environment) : base(environment) { }
/// <summary> /// Create a Consumer instance based upon the Environment passed. /// </summary> /// <param name="environment">Environment object.</param> protected EventConsumer(Model.Infrastructure.Environment environment) { Environment = EnvironmentUtils.MergeWithSettings(environment, SettingsManager.ConsumerSettings); RegistrationService = new RegistrationService(SettingsManager.ConsumerSettings, SessionsManager.ConsumerSessionService); }