using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEA_Core.AOP; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Const; using WIDESEA_Core.Helper; using WIDESEA_Core.Seed; using WIDESEA_ISystemRepository; using WIDESEA_ISystemService; using WIDESEA_Model.Models; namespace WIDESEA_SystemService { public class Sys_TenantService : ServiceBase, ISys_TenantService { private IUnitOfWorkManage _unitOfWorkManage; public ISys_TenantRepository Repository => BaseDal; public Sys_TenantService(ISys_TenantRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) { _unitOfWorkManage = unitOfWorkManage; } public WebResponseContent InitTenantInfo(string tenantName, int tenantType) { WebResponseContent content = new WebResponseContent(); try { Sys_Tenant tenant = new Sys_Tenant() { ConnectionString = TenantConst.DBConStr, DbType = 1, Status = 1, TenantName = tenantName, TenantType = tenantType, CreateDate = DateTime.Now, Creater = "1111" }; int tenantId = BaseDal.Db.Insertable(tenant).ExecuteReturnIdentity(); tenant = BaseDal.QueryFirst(x => x.TenantId == tenantId); tenant.ConnectionString = string.Format(TenantConst.DBConStr, ".", "Tenant_WMSDB_" + tenantId, "sa", "P@ssw0rd").EncryptDES(AppSecret.DB); BaseDal.UpdateData(tenant); InitTenantDb(tenant); content = WebResponseContent.Instance.OK(); } catch (Exception ex) { content = WebResponseContent.Instance.Error(ex.Message); } return content; } public void InitTenantDb(Sys_Tenant tenant) { string conStr = tenant.ConnectionString.DecryptDES(AppSecret.DB); ConnectionConfig connectionConfig = new ConnectionConfig() { ConfigId = tenant.TenantId, ConnectionString = conStr, DbType = (DbType)tenant.DbType, IsAutoCloseConnection = true, AopEvents = new AopEvents() { DataExecuting = SqlSugarAop.DataExecuting } }; DBSeed.InitTenantSeedAsync(Db.AsTenant(), connectionConfig); } } }