using Autofac;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System;
using Tiobon.Core.Seed;
using Tiobon.Core.DataAccess;
using Tiobon.Core.DB;
using Tiobon.Core.DB.Dapper.Extensions;
using Tiobon.Core.Extensions;
using Tiobon.Core.Repository.UnitOfWorks;
using Tiobon.Core.Services.Extensions;
namespace Tiobon.Core.Jobs;
///
/// 任务处理中心
///
public class Helper
{
public static void Init(ServiceCollection services)
{
var basePath = AppContext.BaseDirectory;
services.AddSingleton(new AppSettings(basePath));
services.AddTransient();
services.AddScoped();
services.AddScoped();
services.AddScoped(o =>
{
return new SqlSugar.SqlSugarScope(new SqlSugar.ConnectionConfig()
{
ConnectionString = BaseDBConfig.GetMainConnectionDb().Connection, //必填, 数据库连接字符串
DbType = (SqlSugar.DbType)BaseDBConfig.GetMainConnectionDb().DbType, //必填, 数据库类型
IsAutoCloseConnection = true, //默认false, 时候知道关闭数据库连接, 设置为true无需使用using或者Close操作
});
});
var mainConnetctDb = BaseDBConfig.MutiConnectionString.allDbs.Find(x => x.ConnId == MainDb.CurrentDbConnId);
services.AddDbContext(options =>
{
options.UseLazyLoadingProxies().UseSqlServer(mainConnetctDb.Connection, o => o.UseCompatibilityLevel(120));
});
var builder = new ContainerBuilder();
builder.RegisterType().As()
.AsImplementedInterfaces()
.InstancePerLifetimeScope()
.PropertiesAutowired();
builder.RegisterInstance(new LoggerFactory())
.As();
builder.RegisterGeneric(typeof(Logger<>))
.As(typeof(ILogger<>))
.SingleInstance();
services.AddAppServices();
//services.AddTransient();
//services.AddTransient, BaseRepository>();
//services.AddTransient();
//services.AddTransient, BaseRepository>();
// 注入事件服务
services.AddLogging();
services.AddJobSetup();
services.AddSimpleDapperSetup();
builder.Build();
}
}