123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- using Autofac;
- using Autofac.Extensions.DependencyInjection;
- using ERP.Framework.Config;
- using ERP.Framework.Constants;
- using ERP.Framework.Extensions;
- using ERP.Framework.Filter;
- using ERP.Framework.Logger;
- using ERP.Framework.Middleware;
- using Microsoft.AspNetCore.Builder;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Hosting;
- using Newtonsoft.Json;
- using Serilog;
- namespace ERP.Core
- {
- public static class Application
- {
-
-
-
-
-
-
- public static WebApplicationBuilder InitApplication(this WebApplicationBuilder builder)
- {
-
- var redisConfig = builder.Configuration.GetSection(FrameworkConstant.REDIS).Get<RedisConfig>();
- var logConfig = builder.Configuration.GetSection(FrameworkConstant.LOG_CONFIG).Get<LogConfig>();
- Log.Logger = LoggerBuilder.CreateLogger(logConfig);
-
- builder.Configuration.InitIdGenerater();
-
- builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
- builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
- {
- builder.InitAutofac();
- });
-
- builder.Services.AddHttpContextAccessor();
-
- builder.Services.AddCache(redisConfig);
-
- builder.Services.AddEntityFrameworkMySql();
-
- builder.Services.AddCorsAccessor();
-
-
-
-
- builder.Services.AddSwagger();
-
-
-
- builder.Services
- .AddControllers(options =>
- {
- options.Filters.Add(new GlobalActionFilter());
- options.Filters.Add(new GlobalExceptionFilter());
- })
- .AddNewtonsoftJson(options =>
- {
- options.SerializerSettings.DateFormatHandling = DateFormatHandling.IsoDateFormat;
- options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local;
- options.SerializerSettings.DateFormatString = DateTimeConstant.DATE_LONG;
- options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
-
-
-
- });
-
- builder.Services.AddLocalization();
-
-
-
-
-
- builder.Services.AddEndpointsApiExplorer();
-
- builder.Services.AddScoped<AuthenticationMiddleware>();
- builder.Services.AddDbContext<CoreDbContext>();
- return builder;
- }
- public static void InitConfigure(this IApplicationBuilder app)
- {
- app.UseAuthenticationMiddleware();
- app.UseHttpsRedirection();
- app.UseI18N();
- app.UseSwagger();
- app.UseSwaggerUI();
- app.UseRouting();
- app.UseEndpoints(endpoints =>
- {
-
- endpoints.MapControllers();
- });
- }
- }
- }
|