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(); } }