Ejemplo n.º 1
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .UseSerilog((context, configuration) =>
        {
            configuration.MinimumLevel.Debug()
            .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
            .Enrich.FromLogContext()
            .WriteTo.Console()
            .WriteTo.File("logs//log.txt", rollingInterval: RollingInterval.Day, retainedFileCountLimit: 7);
        })
        .ConfigureServices((hostContext, services) =>
        {
            var animusUrl   = hostContext.Configuration.GetValue <string>("AnimusUrl");
            var animusKey   = hostContext.Configuration.GetValue <string>("AnimusKey");
            var influxDbUrl = hostContext.Configuration.GetValue <string>("InfluxDbUrl");
            var maxWebSocketMessagesPerHour = hostContext.Configuration.GetValue <int>("MaxWebSocketMessagesPerHour");
            var animusConfiguration         = new AnimusConfiguration(animusKey, animusUrl);

            services.AddHostedService <Worker>();
            services.AddTransient <IAnimusWebSocketEventHandler, AnimusWebSocketEventHandler>();
            services.AddHttpClient <AnimusHeartHttpClient>(c =>
            {
                c.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", animusKey);
                c.BaseAddress = new Uri(animusUrl);
            });
            services.AddTransient <IInfluxService, InfluxServiceService>();
            services.AddSingleton(new MessageCounter(maxWebSocketMessagesPerHour));
            services.AddTransient <SlotCounter>();
            services.AddTransient <IRight, Right>();
            services.AddTransient <IAnimusWebSocketHandler, AnimusWebSocketHandler>(f => new AnimusWebSocketHandler(animusConfiguration));
            services.AddTransient(sp => InfluxDBClientFactory.Create(influxDbUrl, Token));
        });
 public AnimusWebSocketHandler(AnimusConfiguration configuration)
 {
     _configuration = configuration;
     _client        = new ClientWebSocket();
     _client.Options.AddSubProtocol("AHauth");
 }