fengling-risk-control/Fengling.RiskControl.Web/Program.cs

47 lines
1.7 KiB
C#

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<RiskControlDbContext>(options =>
options.UseNpgsql(builder.Configuration.GetConnectionString("RiskControl")));
builder.Services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(Program).Assembly));
builder.Services.AddValidatorsFromAssemblyContaining<Program>(lifetime: ServiceLifetime.Scoped);
builder.Services.AddScoped<IRiskRuleRepository, RiskRuleRepository>();
builder.Services.AddScoped<IRiskScoreRepository, RiskScoreRepository>();
builder.Services.AddScoped<IRiskAlertRepository, RiskAlertRepository>();
builder.Services.AddScoped<ILotteryActivityRepository, LotteryActivityRepository>();
builder.Services.AddScoped<IRiskEvaluationService, RiskEvaluationService>();
builder.Services.AddScoped<ILotteryService, LotteryService>();
builder.Services.AddScoped<IRiskAlertService, RiskAlertService>();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseFastEndpoints();
app.UseHttpsRedirection();
app.Run();