Example #1
0
 /// <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)
 {
 }
Example #2
0
 public ValuesController(TenantDBContext dbContext)
 {
     this.dbContext = dbContext;
 }
Example #3
0
        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);
        }
Example #4
0
 /// <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)
 {
 }