using Fengling.RiskControl.Infrastructure; using Fengling.RiskControl.Infrastructure.Repositories; using Fengling.RiskControl.Domain.Repositories; using Fengling.RiskControl.Domain.Aggregates.RiskRules; using Fengling.RiskControl.Domain.Aggregates.RiskScores; using Fengling.RiskControl.Domain.Aggregates.RiskAlerts; using Fengling.RiskControl.Domain.Aggregates.LotteryActivities; using Fengling.RiskControl.Application.Services; using FastEndpoints; using FluentValidation; using MediatR; using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(args); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddFastEndpoints(); builder.Services.AddSwaggerGen(); builder.Services.AddDbContext(options => options.UseNpgsql(builder.Configuration.GetConnectionString("RiskControl"))); builder.Services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(Program).Assembly)); builder.Services.AddValidatorsFromAssemblyContaining(lifetime: ServiceLifetime.Scoped); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseFastEndpoints(); app.UseHttpsRedirection(); app.Run();