using Application.Domain.Entities; using Infrastructure.Data; using Infrastructure.Email; using Infrastructure.Sms; using Infrastructure.UI; using Infrastructure.Web; using IoT.Shared.Services; using IoTCenter.Services; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace IoTCenter { public class Startup : BaseStartup { public Startup(IConfiguration configuration, IWebHostEnvironment env) : base(configuration, env) { } public override void ConfigureServices(IServiceCollection services) { services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); base.ConfigureServices(services); } public override void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { base.Configure(app, env, loggerFactory); // Task.Run(() => { using var scope = app.ApplicationServices.CreateScope(); var tiggerRepo = scope.ServiceProvider.GetService>(); var tiggers = tiggerRepo.ReadOnlyTable().Where(o => o.Scene.NodeId == null).ToList(); foreach (var tigger in tiggers) { IoTCenterEventHandler.Tiggers.TryAdd(tigger.Id, tigger); } }); } public override void ConfigureOptions(IServiceCollection services) { services.ConfigureOptions(new FileConfigureOptions(Env, new List { "IoT.Shared" })); } public override void UseSignalR(IEndpointRouteBuilder endpoints) { this.UseSignalR(endpoints); } } }