// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, IShamanLogger logger, IRouterServerInfoProvider serverInfoProvider) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseCookiePolicy(); if (IsMetricsEnabled()) { app.UseMiddleware <RequestMetricsMiddleWare>(); } app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); serverInfoProvider.Start(); logger.Error($"Initial server list: {JsonConvert.SerializeObject(serverInfoProvider.GetAllServers(), Formatting.Indented)}"); logger.Error($"Initial bundles list: {JsonConvert.SerializeObject(serverInfoProvider.GetAllBundles(), Formatting.Indented)}"); }
public async Task <ActionResult> GetServerInfoList() { var input = await Request.GetRawBodyBytesAsync(); var request = Serializer.DeserializeAs <GetServerInfoListRequest>(input); var response = new GetServerInfoListResponse(); try { response.ServerInfoList = new EntityDictionary <ServerInfo>(_serverInfoProvider.GetAllServers().Where(s => !request.ActualOnly || (request.ActualOnly && s.IsApproved && s.IsActual(10000)))); } catch (Exception ex) { response.SetError(ex.Message); LogError($"{ex}"); } return(new FileContentResult(Serializer.Serialize(response), "text/html")); }