public void SetInitialData() { var vehicles = _dataStubs.Vehicles; _dbContext.VehicleEncyclopedia.AddRange(vehicles); _dbContext.DictionaryNation.AddRange(_dataStubs.Nations); _dbContext.DictionaryVehicleType.AddRange(_dataStubs.VehicleTypes); _dbContext.AccountInfo.Add(_dataStubs.AccountInfo); _dbContext.SaveChanges(); var accounts = _dbContext.AccountInfo.AsNoTracking().ToList(); Assert.NotNull(accounts); Assert.Equal(1, accounts.Count); Assert.Equal(_dataStubs.AccountInfo.AccountId, accounts.Single().AccountId); Assert.Equal(_dataStubs.AccountInfo.LastBattleTime, accounts.Single().LastBattleTime); }
public void SetDatabase(ReplicationData replicationData) { if (_dbContext.AccountInfo.AsNoTracking().Count() != 0) { throw new ApplicationException("Database is not empty"); } var exPresentAccountTanks = new List <AccountTankStatistics>(); replicationData.AccountInfoStatistics.ForEach(s => s.AccountInfoStatisticsId = 0); replicationData.AccountClanHistory.ForEach(h => h.AccountClanHistoryId = 0); replicationData.AccountClanInfo.ForEach(c => c.AccountClanInfoId = 0); replicationData.AccountInfoAchievements.ForEach(c => c.AccountInfoAchievementId = 0); replicationData.AccountInfoTankAchievements.ForEach(c => c.AccountInfoAchievementId = 0); replicationData.Frags.ForEach(f => f.FragListItemId = 0); replicationData.PresentAccountTanks.ForEach(t => { t.PresentAccountTankId = 0; var stat = replicationData.AccountTanksStatistics.First(s => s.AccountTankStatisticId == t.AccountTankStatisticId); exPresentAccountTanks.Add(new AccountTankStatistics { AccountTankStatisticId = stat.AccountTankStatisticId, AccountId = stat.AccountId, TankId = stat.TankId, BattleLifeTimeInSeconds = stat.BattleLifeTimeInSeconds }); }); replicationData.AccountTanksStatistics.ForEach(s => s.AccountTankStatisticId = 0); try { _dbContext.Database.BeginTransaction(); _dbContext.AccountInfo.AddRange(replicationData.AccountInfo); _dbContext.AccountInfoStatistics.AddRange(replicationData.AccountInfoStatistics); _dbContext.AccountClanHistory.AddRange(replicationData.AccountClanHistory); _dbContext.AccountClanInfo.AddRange(replicationData.AccountClanInfo); _dbContext.AccountInfoAchievement.AddRange(replicationData.AccountInfoAchievements); _dbContext.AccountInfoTankAchievement.AddRange(replicationData.AccountInfoTankAchievements); _dbContext.Frags.AddRange(replicationData.Frags); _dbContext.AccountTankStatistics.AddRange(replicationData.AccountTanksStatistics); _dbContext.SaveChanges(); foreach (var presentTank in replicationData.PresentAccountTanks) { var exAccountTankStat = exPresentAccountTanks .First(t => t.AccountTankStatisticId == presentTank.AccountTankStatisticId); presentTank.AccountTankStatisticId = _dbContext.AccountTankStatistics .Where(t => t.AccountId == exAccountTankStat.AccountId && t.TankId == exAccountTankStat.TankId && t.BattleLifeTimeInSeconds == exAccountTankStat.BattleLifeTimeInSeconds) .Select(t => t.AccountTankStatisticId) .First(); _dbContext.PresentAccountTanks.Add(presentTank); } _dbContext.SaveChanges(); _dbContext.Database.CommitTransaction(); } catch (Exception e) { _logger.LogError(e, "Cannot update database"); _dbContext.Database.RollbackTransaction(); } }
private static void PopulateDatabase(BlitzStaticianDbContext dbContext, AccountInfo accountInfo) { dbContext.AccountInfo.Add(accountInfo); dbContext.SaveChanges(); }
public async Task SaveAchievements(List <Achievement> achievements) { await _dbContext.MergeAchievements(achievements); _dbContext.SaveChanges(); }