Add Log
Fix unused ref Add CodeFirst support Add global context -> App
This commit is contained in:
parent
c3c740ed78
commit
dad8608d63
|
@ -2,13 +2,16 @@ using LFlow.Base.BusinessInterface;
|
|||
using LFlow.Base.Interfaces;
|
||||
using LFlow.Home.Models.DtoModel;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Serilog;
|
||||
using Serilog.Core;
|
||||
|
||||
namespace LFlow.Home.Controllers;
|
||||
public class HomeController(IHomeService<HomeDto, string> service) : BaseController
|
||||
public class HomeController(IHomeService<HomeDto, string> service, ILogger logger) : BaseController
|
||||
{
|
||||
[HttpGet]
|
||||
public string Home(string id)
|
||||
{
|
||||
logger.Information($"request id -> {id} _ hot_reload _ 1");
|
||||
return service?.GetById(id)?.ToString() ?? "No service";
|
||||
}
|
||||
}
|
|
@ -21,7 +21,6 @@
|
|||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\LFlow\LFlow.Base.csproj" />
|
||||
<ProjectReference Include="..\LFlow.Interfaces\LFlow.Interfaces.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -12,6 +12,11 @@ public class HomeModel : IDataModel
|
|||
[SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
|
||||
public string? Id { get; set; }
|
||||
|
||||
|
||||
public string? ModuleName { get; set; }
|
||||
public string? ModuleUrl { get; set; }
|
||||
public string? ModuleVer { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"HomeModel {Id}";
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
using System;
|
||||
using LFlow.Base.Interfaces;
|
||||
using LFlow.Base.Utils;
|
||||
using LFlow.Home.Models.DataModels;
|
||||
|
@ -7,10 +6,11 @@ using LFlow.Home.Models.DataModels;
|
|||
// using LFlow.Interfaces;
|
||||
using LFlow.Home.Models.DtoModel;
|
||||
using LFlow.Base.BusinessInterface;
|
||||
using Serilog;
|
||||
|
||||
namespace LFlow.Home.Services;
|
||||
|
||||
public class HomeService(IRepo<HomeModel, string> repo) : IHomeService<HomeDto, string>
|
||||
public class HomeService(IRepo<HomeModel, string> repo, ILogger logger) : IHomeService<HomeDto, string>
|
||||
{
|
||||
public HomeDto DeleteById(string id)
|
||||
{
|
||||
|
@ -20,6 +20,7 @@ public class HomeService(IRepo<HomeModel, string> repo) : IHomeService<HomeDto,
|
|||
|
||||
public HomeDto GetById(string id)
|
||||
{
|
||||
logger.Information($"GetById id -> {id}");
|
||||
var result = repo.Get(id);
|
||||
return Mapper.Map<HomeDto>(result);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
using System;
|
||||
using LFlow.Base.Interfaces;
|
||||
using SqlSugar;
|
||||
|
||||
namespace LFlow.User.Model.DataModel;
|
||||
|
||||
[SugarTable("T_B_USER")]
|
||||
public record UserModel : IDataModel
|
||||
{
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string? UserID { get; set; }
|
||||
public string? UserName { get; set; }
|
||||
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
using System;
|
||||
|
||||
namespace LFlow.Base;
|
||||
/// <summary>
|
||||
/// 程序对象
|
||||
/// </summary>
|
||||
public class App
|
||||
{
|
||||
public static IServiceCollection? services;
|
||||
private static IServiceProvider? serviceProvider => services?.BuildServiceProvider();
|
||||
public static T? GetService<T>()
|
||||
{
|
||||
return serviceProvider.GetService<T>();
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
|
@ -13,6 +13,10 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="Mapster" Version="7.4.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.1" />
|
||||
<PackageReference Include="Serilog" Version="4.0.2" />
|
||||
<PackageReference Include="Serilog.AspNetCore" Version="8.0.2" />
|
||||
<PackageReference Include="Serilog.Extensions.Hosting" Version="8.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
|
||||
<PackageReference Include="SQLite" Version="3.13.0" />
|
||||
<PackageReference Include="SqlSugarCore" Version="5.1.4.169" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.8.1" />
|
||||
|
|
|
@ -4,6 +4,8 @@ using Microsoft.AspNetCore.Http;
|
|||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Npgsql.Replication;
|
||||
using Serilog;
|
||||
using Serilog.Events;
|
||||
using SqlSugar;
|
||||
|
||||
namespace LFlow.Base;
|
||||
|
@ -12,15 +14,33 @@ public static class Program
|
|||
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
|
||||
Log.Logger = new LoggerConfiguration()
|
||||
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
|
||||
.Enrich.FromLogContext()
|
||||
.WriteTo.Console()
|
||||
.CreateBootstrapLogger();
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
builder.Services.AddSerilog((services, lc) => lc
|
||||
.ReadFrom.Configuration(builder.Configuration)
|
||||
.ReadFrom.Services(services)
|
||||
.Enrich.FromLogContext()
|
||||
// .WriteTo.Console()
|
||||
);
|
||||
|
||||
Log.Logger.Information("LoadSubService");
|
||||
builder.Services.LoadSubService();
|
||||
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwaggerGen();
|
||||
builder.Services.AddHttpContextAccessor();
|
||||
|
||||
Log.Logger.Information("ConfigureSqlSugar");
|
||||
builder.Services.ConfigureSqlSugar();
|
||||
|
||||
builder.Services.AddControllers();
|
||||
|
||||
builder.Services.AddSwaggerGen(u =>
|
||||
{
|
||||
u.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
|
||||
|
@ -35,8 +55,15 @@ public static class Program
|
|||
}
|
||||
});
|
||||
});
|
||||
var app = builder.Build();
|
||||
|
||||
builder.Host.UseSerilog();
|
||||
// init App.service
|
||||
App.services = builder.Services;
|
||||
var app = builder.Build();
|
||||
app.UseSerilogRequestLogging(options =>
|
||||
{
|
||||
options.GetLevel = (httpContext, elapsed, ex) => LogEventLevel.Information;
|
||||
});
|
||||
app.MapControllers();
|
||||
// app.MapGet("/", () => "Hello World!");
|
||||
// if (app.Environment.IsDevelopment())
|
||||
|
@ -57,7 +84,7 @@ public static class Program
|
|||
SqlSugarScope sqlSugar = new(new ConnectionConfig()
|
||||
{
|
||||
DbType = SqlSugar.DbType.Sqlite,
|
||||
ConnectionString = "DataSource=sqlsugar-dev.db",
|
||||
ConnectionString = "DataSource=LFlow-dev.db",
|
||||
IsAutoCloseConnection = true,
|
||||
},
|
||||
db =>
|
||||
|
@ -87,7 +114,7 @@ public static class Program
|
|||
{
|
||||
foreach (var file in files)
|
||||
{
|
||||
Console.Write($"Load file -> {file}...");
|
||||
Log.Logger.Information($"Load file -> {file}...");
|
||||
var assembly = Assembly.LoadFile(file);
|
||||
var types = assembly.GetTypes();
|
||||
bool isUseController = false;
|
||||
|
@ -99,9 +126,6 @@ public static class Program
|
|||
var interfaces = type.GetInterfaces();
|
||||
foreach (var inter in interfaces)
|
||||
{
|
||||
Console.WriteLine();
|
||||
Console.WriteLine(inter.Name);
|
||||
Console.WriteLine(type.Name);
|
||||
if (inter.Name.Contains("IRepo"))
|
||||
{
|
||||
//注册数据仓库
|
||||
|
@ -112,23 +136,25 @@ public static class Program
|
|||
{
|
||||
//注册服务
|
||||
services.AddScoped(inter, type);
|
||||
Console.WriteLine(inter);
|
||||
Console.WriteLine(type);
|
||||
}
|
||||
if (inter.Name.Contains("IController"))
|
||||
{
|
||||
isUseController = true;
|
||||
}
|
||||
if (inter.Name.Equals("IDataModel"))
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Console.Write("done.\r\n");
|
||||
if (isUseController)
|
||||
{
|
||||
Console.WriteLine($"\tAdd Controllers for {assembly.FullName}");
|
||||
Log.Logger.Information($"\tAdd Controllers for {assembly.FullName}");
|
||||
// 添加Controller
|
||||
services.AddControllers().AddApplicationPart(assembly);
|
||||
}
|
||||
Log.Logger.Information("done.\r\n");
|
||||
}
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
using System;
|
||||
using System.Net;
|
||||
|
||||
namespace LFlow.Base.Utils;
|
||||
|
||||
public static class CodeFirst
|
||||
{
|
||||
private static List<Type> _tableTypes = new List<Type>();
|
||||
|
||||
internal static void RegisterTable(Type type)
|
||||
{
|
||||
if (_tableTypes.Contains(type))
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
_tableTypes.Add(type);
|
||||
}
|
||||
}
|
||||
internal static void DBSeed()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -11,20 +11,12 @@ public class Mapper
|
|||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="source"></param>
|
||||
/// <returns></returns>
|
||||
public static T Map<T>(object source)
|
||||
public static T? Map<T>(object source)
|
||||
{
|
||||
// 使用 Mapster 转换
|
||||
// Check if the type is immutable
|
||||
if (typeof(T).IsValueType || typeof(T).IsPrimitive || typeof(T) == typeof(string))
|
||||
if (source == null)
|
||||
{
|
||||
var dest = default(T);
|
||||
// Use MapWith for immutable types
|
||||
return source.Adapt(dest);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Use Adapt for other types
|
||||
return source.Adapt<T>();
|
||||
return default;
|
||||
}
|
||||
return source.Adapt<T>();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"Serilog": {
|
||||
"MinimumLevel": {
|
||||
"Default": "Debug",
|
||||
"Override": {
|
||||
"Microsoft.AspNetCore.Mvc": "Debug",
|
||||
"Microsoft.AspNetCore.Routing": "Debug",
|
||||
"Microsoft.AspNetCore.Hosting": "Debug"
|
||||
}
|
||||
},
|
||||
"WriteTo": [
|
||||
{
|
||||
"Name": "Console"
|
||||
}
|
||||
]
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
Loading…
Reference in New Issue