/// <summary> /// Initializes a new instance of the <see cref="UserAddressRepository"/> class. /// </summary> /// <param name="context">The context.</param> public UserAddressRepository(TenantDBContext context, ILogger <UserAddressRepository> logger) : base(context, logger) { }
public ValuesController(TenantDBContext dbContext) { this.dbContext = dbContext; }
private Installation MigrateTenants(InstallConfig install) { var result = new Installation { Success = false, Message = string.Empty }; var versions = Constants.ReleaseVersions.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); using (var scope = _serviceScopeFactory.CreateScope()) { var upgrades = scope.ServiceProvider.GetRequiredService <IUpgradeManager>(); var sql = scope.ServiceProvider.GetRequiredService <ISqlRepository>(); var tenantManager = scope.ServiceProvider.GetRequiredService <ITenantManager>(); using (var db = GetInstallationContext()) { foreach (var tenant in db.Tenant.ToList()) { tenantManager.SetTenant(tenant.TenantId); try { using (var tenantDbContext = new TenantDBContext(tenantManager, null)) { if (install.DatabaseType == Constants.DefaultDBType) { UpgradeSqlServer(sql, tenant.DBConnectionString, tenant.DBType, false); } // Push latest model into database tenantDbContext.Database.Migrate(); result.Success = true; } } catch (Exception ex) { result.Message = ex.Message; _filelogger.LogError(Utilities.LogMessage(this, result.Message)); } // execute any version specific upgrade logic var version = tenant.Version; var index = Array.FindIndex(versions, item => item == version); if (index != (versions.Length - 1)) { if (index == -1) { index = 0; } for (var i = index; i < versions.Length; i++) { upgrades.Upgrade(tenant, versions[i]); } tenant.Version = versions[versions.Length - 1]; db.Entry(tenant).State = EntityState.Modified; db.SaveChanges(); } } } } if (string.IsNullOrEmpty(result.Message)) { result.Success = true; } return(result); }
/// <summary> /// Initializes a new instance of the <see cref="LookupRepository{TEntity}"/> class. /// </summary> /// <param name="context">The context.</param> public LookupRepository(TenantDBContext context, ILogger <LookupRepository <TEntity> > logger) : base(context, logger) { }