public void Configuration(IAppBuilder app) { GlobalConfiguration.Configure(config => { var container = UnityConfiguration.GetContainer(); config.DependencyResolver = new UnityDependencyResolver(container); ApiConfiguration.Install(config, app); var client = SubscriptionClient.CreateFromConnectionString(CoreConfiguration.Config.EventQueueConnectionString, CoreConfiguration.Config.TopicName, CoreConfiguration.Config.SubscriptionName); client.OnMessage(message => { try { var messageBody = ((BrokeredMessage)message).GetBody <string>(); var messageBodyObject = DeserializeObject <JObject>(messageBody, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Serialize, PreserveReferencesHandling = PreserveReferencesHandling.Objects, TypeNameHandling = TypeNameHandling.All }); GlobalHost.ConnectionManager.GetHubContext <EventHub>().Clients.All.events(messageBodyObject); } catch (Exception exception) { throw exception; } }); }); }
public static void Install(HttpConfiguration config, IAppBuilder app) { WebApiUnityActionFilterProvider.RegisterFilterProviders(config); var container = GetContainer(); app.MapSignalR(); app.Use(typeof(StatusMiddleware)); config.Filters.Add(new HandleErrorAttribute(container.Resolve <ILoggerFactory>())); app.UseCors(CorsOptions.AllowAll); config.SuppressHostPrincipal(); var mediator = container.Resolve <IMediator>(); Lazy <IAuthConfiguration> lazyAuthConfiguration = UnityConfiguration.GetContainer().Resolve <Lazy <IAuthConfiguration> >(); config.EnableSwagger(c => { c.UseFullTypeNameInSchemaIds(); c.SingleApiVersion("v1", "ConfigurationsService"); }) .EnableSwaggerUi(); app.UseOAuthAuthorizationServer(new OAuthOptions(lazyAuthConfiguration, mediator)); app.UseJwtBearerAuthentication(new JwtOptions(lazyAuthConfiguration)); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); config.Filters.Add(new System.Web.Http.AuthorizeAttribute()); var jSettings = new JsonSerializerSettings(); jSettings.Formatting = Formatting.Indented; jSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; jSettings.ContractResolver = new SignalRContractResolver(); config.Formatters.JsonFormatter.SerializerSettings = jSettings; config.Formatters.Remove(config.Formatters.XmlFormatter); GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => JsonSerializer.Create(jSettings)); config.MapHttpAttributeRoutes(); }