using System.Collections.Specialized; using Azaion.Repository; using Azaion.Repository.DTO; using Azaion.Repository.DTO.Configs; using Azaion.Video; using Microsoft.Extensions.Options; using Quartz; using Serilog; using Serilog.Events; var builder = WebApplication.CreateBuilder(args); Log.Logger = new LoggerConfiguration() .MinimumLevel.Override("Microsoft", LogEventLevel.Information) .Enrich.FromLogContext() .WriteTo.Console() .WriteTo.File( path: "Logs/log.txt", rollingInterval: RollingInterval.Day) .CreateLogger(); builder.Host.UseSerilog(); builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.Configure(builder.Configuration.GetSection(nameof(FoldersConfig))); builder.Services.Configure(builder.Configuration.GetSection(nameof(ConnectionStrings))); builder.Services.AddSingleton(sp => new DbFactory(sp.GetService>()!.Value.FraudDb!)); builder.Services.AddScoped(); var connStr = builder.Configuration.Get(); builder.Services.AddQuartz(q => { q.SchedulerId = "AzaionScheduler"; q.SchedulerName = "Azaion Scheduler"; q.UsePersistentStore(c => { c.UseNewtonsoftJsonSerializer(); c.UseMySql(connStr.FraudDbMsSql); }); }); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.MapControllers(); app.Run();