public static HostStateBuilder AddState(this HostBuilder self)
        {
            self.Configure(s =>
            {
                s.AddSingleton <HostStateManager>();
            });
            self.AddMiddleware <HostStateMiddleware>();

            return(new HostStateBuilder(self));
        }
        private static IHost CreateHost()
        {
            var builder = new HostBuilder();

            builder.ConfigureAppConfiguration((context, builder) =>
            {
                builder.Sources.Clear();
                builder
                .SetBasePath(AppContext.BaseDirectory)
                .AddJsonFile("appsettings.json", optional: false)
                .AddEnvironmentVariables();
            });

            builder.ConfigureServices((context, builder) =>
            {
                builder.AddLogging(c => c.AddConsole()).Configure <LoggerFilterOptions>(cfg => cfg.MinLevel = LogLevel.Debug);
                builder.AddScoped <Provider>();
                builder.Configure <Settings>(context.Configuration.GetSection("Settings"));
            });


            return(builder.Build());
        }