示例#1
0
        static void Main(string[] args)
        {
            //args = new string[] { "notistate", "2" };
            var logger = LogManager.GetCurrentClassLogger();

            try
            {
                IConfiguration settings = new ConfigurationBuilder()
                                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true).Build();
                AppSetting.Configure(settings);
                var services = new ServiceCollection();
                services.AddSingleton <ILogger>(logger);
                InitialService(services);
                var serviceProvider = services.BuildServiceProvider();
                consoleServiceProvider = serviceProvider.GetService <IConsoleServiceProvider>();

                if (args.Length > 0)
                {
                    var args2   = args.Skip(1).ToArray();
                    var service = consoleServiceProvider.GetService(args[0]);
                    service.Execute(args2);
                }
                else
                {
                    Console.WriteLine("Commands:");
                    Console.WriteLine(consoleServiceProvider.GetHelpText());
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Stopped program because of exception");
                Console.WriteLine("Something went wrong");
                //throw;
            }
            finally
            {
                // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)
                LogManager.Shutdown();
            }
        }
示例#2
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            IConfiguration settings = new ConfigurationBuilder()
                                      .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                                      .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)
                                      .AddEnvironmentVariables().Build();

            AppSetting.Configure(settings);

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseSwagger();
                app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "ControlRoomWebAPI v1"));
            }

            app.UseHttpsRedirection();

            var contextAccessor = app.ApplicationServices.GetRequiredService <IHttpContextAccessor>();

            SessionData.Configure(() =>
            {
                return(contextAccessor.HttpContext.Items);
            });

            app.UseRouting();

            app.UseMiddleware <JwtMiddleware>();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapHub <ControlPumpHub>("/ControlHub");
            });
        }