59 lines
2.3 KiB
C#
59 lines
2.3 KiB
C#
using _0_Framework.Application;
|
|
using _0_Framework.Application.Sms;
|
|
using _0_Framework.Application.UID;
|
|
using _0_Framework.InfraStructure.Mongo;
|
|
using AccountManagement.Configuration;
|
|
using BackgroundInstitutionContract.Task;
|
|
using BackgroundInstitutionContract.Task.Jobs;
|
|
using CompanyManagment.EFCore.Services;
|
|
using Hangfire;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using MongoDB.Driver;
|
|
using PersonalContractingParty.Config;
|
|
using Query.Bootstrapper;
|
|
using WorkFlow.Infrastructure.Config;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
var hangfireConnectionString = builder.Configuration.GetConnectionString("HangfireDb");
|
|
builder.Services.AddHangfire(x => x.UseSqlServerStorage(hangfireConnectionString));
|
|
builder.Services.AddHangfireServer();
|
|
var connectionString = builder.Configuration.GetConnectionString("MesbahDb");
|
|
var connectionStringTestDb = builder.Configuration.GetConnectionString("TestDb");
|
|
builder.Services.AddSingleton<IPasswordHasher, PasswordHasher>();
|
|
builder.Services.AddTransient<IAuthHelper, AuthHelper>();
|
|
builder.Services.AddTransient<ISmsService, SmsService>();
|
|
builder.Services.AddTransient<IUidService, UidService>();
|
|
builder.Services.AddTransient<IFileUploader, FileUploader>();
|
|
builder.Services.Configure<AppSettingConfiguration>(builder.Configuration);
|
|
|
|
#region MongoDb
|
|
|
|
var mongoConnectionSection = builder.Configuration.GetSection("MongoDb");
|
|
var mongoDbSettings = mongoConnectionSection.Get<MongoDbConfig>();
|
|
var mongoClient = new MongoClient(mongoDbSettings.ConnectionString);
|
|
var mongoDatabase = mongoClient.GetDatabase(mongoDbSettings.DatabaseName);
|
|
|
|
builder.Services.AddSingleton<IMongoDatabase>(mongoDatabase);
|
|
|
|
#endregion
|
|
|
|
PersonalBootstrapper.Configure(builder.Services, connectionString);
|
|
TestDbBootStrapper.Configure(builder.Services, connectionStringTestDb);
|
|
AccountManagementBootstrapper.Configure(builder.Services, connectionString);
|
|
WorkFlowBootstrapper.Configure(builder.Services, connectionString);
|
|
QueryBootstrapper.Configure(builder.Services);
|
|
JobsBootstrapper.Configure(builder.Services);
|
|
builder.Services.AddHttpClient();
|
|
builder.Services.AddHttpContextAccessor();
|
|
var app = builder.Build();
|
|
|
|
app.MapHangfireDashboard();
|
|
app.MapGet("/", () => "Hello World!");
|
|
|
|
using (var scope = app.Services.CreateScope())
|
|
{
|
|
var jobScheduler = scope.ServiceProvider.GetRequiredService<JobSchedulerRegistrator>();
|
|
jobScheduler.Register();
|
|
}
|
|
|
|
app.Run(); |