47 lines
1.7 KiB
C#
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();
|