99 lines
3.8 KiB
C#
99 lines
3.8 KiB
C#
using FluentValidation.AspNetCore;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using SJZY.Expand.ABP.Core;
|
|
using SJZY.Expand.ABP.Core.Cors;
|
|
using SJZY.Expand.ABP.Core.Filter;
|
|
using SJZY.Expand.ABP.Core.JsonSerialization;
|
|
using SJZY.Expand.ABP.Core.Localization;
|
|
using SJZY.Expand.ABP.Core.Prometheus;
|
|
using SJZY.Expand.ABP.Core.Redis;
|
|
using SJZY.Expand.ABP.Core.Swagger;
|
|
using SJZY.Track.Application;
|
|
using SJZY.Track.Infrastructure;
|
|
using Volo.Abp;
|
|
using Volo.Abp.AspNetCore.Mvc;
|
|
using Volo.Abp.AspNetCore.Serilog;
|
|
using Volo.Abp.Auditing;
|
|
using Volo.Abp.Autofac;
|
|
using Volo.Abp.Json;
|
|
using Volo.Abp.Modularity;
|
|
|
|
[assembly: HostingStartup(typeof(HostingStartup))]
|
|
|
|
namespace SJZY.Track.Api
|
|
{
|
|
[DependsOn(
|
|
typeof(AbpAutofacModule),
|
|
typeof(SjzyAbpCodeModule),
|
|
typeof(AbpAspNetCoreMvcModule),
|
|
typeof(AbpAspNetCoreSerilogModule),
|
|
typeof(SjzyTrackApplicationModule),
|
|
typeof(SjzyTrackInfrastructureModule)
|
|
)]
|
|
public class SjzyTrackApiModule : AbpModule
|
|
{
|
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
|
{
|
|
var environment = context.Services.GetHostingEnvironment();
|
|
var configuration = context.Services.GetConfiguration();
|
|
context.Services.AddSwagger();
|
|
//过滤器相关配置
|
|
context.Services.AddMvc(options =>
|
|
{
|
|
options.Filters.AddService<GlobalExceptionFilter>();
|
|
options.Filters.AddService<RequestLogFilter>();
|
|
options.Filters.AddService<UnifyResultFilter>();
|
|
}).AddNewtonsoftJson();
|
|
|
|
context.Services.AddFluentValidationAutoValidation().AddFluentValidationClientsideAdapters();
|
|
|
|
//Json格式化全局处理
|
|
context.Services.Configure<MvcNewtonsoftJsonOptions>(options =>
|
|
{
|
|
options.SerializerSettings.ContractResolver =
|
|
new Newtonsoft.Json.Serialization.
|
|
CamelCasePropertyNamesContractResolver(); //.DefaultContractResolver();
|
|
options.SerializerSettings.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss"));
|
|
options.SerializerSettings.Converters.Add(new LongJsonConverter());
|
|
});
|
|
|
|
Configure<AbpJsonOptions>(options => options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss");
|
|
Configure<AbpAuditingOptions>(options => { options.IsEnabled = false; });
|
|
|
|
|
|
context.Services.AddRedis();
|
|
}
|
|
|
|
public override void OnApplicationInitialization(ApplicationInitializationContext context)
|
|
{
|
|
var app = context.GetApplicationBuilder();
|
|
var env = context.GetEnvironment();
|
|
|
|
if (env.IsDevelopment())
|
|
app.UseDeveloperExceptionPage();
|
|
|
|
app.UseRequestCulture();
|
|
app.UseRouting();
|
|
app.UseCorsPolicy();
|
|
app.UseConfiguredEndpoints();
|
|
app.UseAbpSwaggerUI(env);
|
|
app.UseAbpSerilogEnrichers();
|
|
app.UsePrometheus();
|
|
|
|
#region 启动提示
|
|
|
|
Console.WriteLine($@"
|
|
+-------------------------------------------------------+
|
|
| |
|
|
| |
|
|
| 轨迹中心启动成功 |
|
|
| {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")} |
|
|
| |
|
|
| |
|
|
+-------------------------------------------------------+
|
|
");
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
} |