107 lines
3.9 KiB
C#
107 lines
3.9 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.App.Contracts.Hubs;
|
|
using CompanyManagment.EFCore.Services;
|
|
using GozareshgirProgramManager.Application._Bootstrapper;
|
|
using GozareshgirProgramManager.Application.Interfaces;
|
|
using GozareshgirProgramManager.Application.Modules.Users.Commands.CreateUser;
|
|
using GozareshgirProgramManager.Infrastructure;
|
|
using GozareshgirProgramManager.Infrastructure.Persistence.Seed;
|
|
using Hangfire;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using MongoDB.Driver;
|
|
using PersonalContractingParty.Config;
|
|
using Query.Bootstrapper;
|
|
using Serilog;
|
|
using Serilog.Events;
|
|
using Shared.Contracts.PmUser.Queries;
|
|
using WorkFlow.Infrastructure.Config;
|
|
|
|
var logDirectory = @"C:\Logs\Hangfire\BackgroundInstitutionContract\";
|
|
|
|
if (!Directory.Exists(logDirectory))
|
|
{
|
|
Directory.CreateDirectory(logDirectory);
|
|
}
|
|
|
|
Log.Logger = new LoggerConfiguration()
|
|
//NO EF Core log
|
|
.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
|
|
|
|
//NO DbCommand log
|
|
.MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Command", LogEventLevel.Warning)
|
|
|
|
//NO Microsoft Public log
|
|
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
|
|
|
|
.WriteTo.File(
|
|
path: Path.Combine(logDirectory, "institution-contract-log-.txt"),
|
|
rollingInterval: RollingInterval.Day,
|
|
retainedFileCountLimit: 30,
|
|
shared: true,
|
|
outputTemplate:
|
|
"{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level}] {Message}{NewLine}{Exception}"
|
|
).CreateLogger();
|
|
|
|
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);
|
|
builder.Services.AddScoped<IBoardNotificationPublisher, NullBoardNotificationPublisher>();
|
|
#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
|
|
|
|
builder.Services.AddProgramManagerApplication();
|
|
builder.Services.AddProgramManagerInfrastructure(builder.Configuration);
|
|
|
|
|
|
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();
|
|
builder.Services.AddSignalR();
|
|
|
|
|
|
builder.Host.UseSerilog();
|
|
|
|
|
|
var app = builder.Build();
|
|
|
|
app.MapHub<SendSmsHub>("/sendSmsHub");
|
|
|
|
app.MapHangfireDashboard();
|
|
app.MapGet("/", () => "Hello World!");
|
|
|
|
using (var scope = app.Services.CreateScope())
|
|
{
|
|
var jobScheduler = scope.ServiceProvider.GetRequiredService<JobSchedulerRegistrator>();
|
|
jobScheduler.Register();
|
|
}
|
|
|
|
app.Run(); |