예제 #1
0
        // 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)}");
        }
예제 #2
0
        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"));
        }