public StatisticCollectorTest(ITestOutputHelper output) { _output = output; _dataStubs = new DataStubs( accountCreatedAt: DateTime.Now.AddMonths(-6), dbLastBattleTime: DateTime.Now.AddHours(-2), dbAccessTokenExp: DateTime.Now.AddDays(1), wgLastBattleTime: DateTime.Now.AddHours(-1) ); var containerBuilder = new ContainerBuilder(); var loggerFactory = TestOutputLoggerFactory.CreateLoggerFactory(output); containerBuilder.SetupLogger(loggerFactory); containerBuilder.AddInMemoryDataBase(loggerFactory); containerBuilder.ConfigureBlitzStaticianLogic(); containerBuilder.SetupWargamingApiMockDependencies(_dataStubs); _container = containerBuilder.Build(); _statisticsCollectorFactory = _container.Resolve <IStatisticsCollectorFactory>(); _statisticsCollectorEngine = _container.Resolve <IStatisticsCollectorEngine>(); _dbContext = _container.Resolve <BlitzStaticianDbContext>(); }
public static ContainerBuilder AddInMemoryDataBase(this ContainerBuilder containerBuilder, ILoggerFactory loggerFactory = null) { var dbContextBuilder = new DbContextOptionsBuilder <BlitzStaticianDbContext>() .UseInMemoryDatabase("BlitzStatician"); if (loggerFactory != null) { dbContextBuilder.UseLoggerFactory(loggerFactory); } var context = new BlitzStaticianDbContext(dbContextBuilder.Options); #pragma warning disable CS0618 var dummyTran = new Mock <IDbContextTransaction>(); var accountDataAccessor = new AccountDataAccessor(context, dummyTran.Object); #pragma warning restore CS0618 containerBuilder.RegisterInstance(context).As <BlitzStaticianDbContext>().ExternallyOwned(); containerBuilder.RegisterType <BlitzStaticianDictionary>().As <IBlitzStaticianDictionary>(); containerBuilder.RegisterInstance(accountDataAccessor).As <IAccountDataAccessor>(); containerBuilder.RegisterType <ClanInfoDataAccessor>().As <IClanInfoDataAccessor>(); containerBuilder.RegisterType <AchievementsDataAccessor>().As <IAchievementsDataAccessor>(); containerBuilder.RegisterType <AccountsTankInfoDataAccessor>().As <IAccountsTankInfoDataAccessor>(); containerBuilder.RegisterType <AccountInfoViewDataAccessor>().As <IAccountInfoViewDataAccessor>(); return(containerBuilder); }
public DatabaseFixturesGetter() { string connectionString = "Data Source=192.168.1.85,1438;Initial Catalog=BlitzStatician;Integrated Security=False;User Id=SA;Password=DevSql123!"; var builder = new DbContextOptionsBuilder <BlitzStaticianDbContext>(); builder.UseSqlServer(connectionString); _dbContext = new BlitzStaticianDbContext(builder.Options); }
public AccountInfoViewDataAccessor( BlitzStaticianDbContext dbContext, IQueryableMapper <AccountInfoStatistics, PlayerStatDto> playerStatMapper ) { _dbContext = dbContext; _playerStatMapper = playerStatMapper; }
public SaveAccountClandInfoDataAccessTest() { var containerBuilder = new ContainerBuilder(); containerBuilder.AddInMemoryDataBase(); _container = containerBuilder.Build(); _dbContext = _container.Resolve <BlitzStaticianDbContext>(); }
public AccountClanInfoHistoryOperationTest() { var containerBuilder = new ContainerBuilder(); containerBuilder.AddInMemoryDataBase(); containerBuilder.RegisterType <CreateAccountClanHistoryOperation>().AsSelf(); _container = containerBuilder.Build(); _dbContext = _container.Resolve <BlitzStaticianDbContext>(); }
public ProlongAccessTokenOperationTest() { _operationContext = PrepareOperationContextForProlongAccessToken(); _prolongatedAccountInfo = PrepareProlongatedAccountInfo(); var containerBuilder = new ContainerBuilder(); containerBuilder.AddWargamingApiClientMock(_prolongatedAccountInfo) .AddInMemoryDataBase() .AddLoggerMock <ProlongAccessTokenIfNeeded>() .RegisterType <ProlongAccessTokenIfNeeded>().AsSelf(); _container = containerBuilder.Build(); _dbContext = _container.Resolve <BlitzStaticianDbContext>(); PopulateDatabase(_dbContext, _operationContext.Accounts.Single().CurrentAccountInfo); }
public static async Task MergeVehicles(this BlitzStaticianDbContext dbContext, List <VehicleEncyclopedia> vehicles) { var ids = vehicles.Select(l => l.TankId); var existing = await dbContext.VehicleEncyclopedia .Where(l => ids.Contains(l.TankId)) .Select(l => l.TankId) .ToListAsync(); vehicles.ForEach(v => { dbContext.VehicleEncyclopedia.Attach(v); dbContext.Entry(v).State = existing.Contains(v.TankId) ? EntityState.Modified : EntityState.Added; }); }
public static async Task MergeNations(this BlitzStaticianDbContext dbContext, List <DictionaryNations> nations) { var nationIds = nations.Select(l => l.NationId); var existing = await dbContext.DictionaryNation .Where(l => nationIds.Contains(l.NationId)) .Select(l => l.NationId) .AsNoTracking() .ToListAsync(); nations.ForEach(l => { dbContext.DictionaryNation.Attach(l); dbContext.Entry(l).State = existing.Contains(l.NationId) ? EntityState.Modified : EntityState.Added; }); }
public static async Task MergeLanguages(this BlitzStaticianDbContext dbContext, List <DictionaryLanguage> languages) { var langIds = languages.Select(l => l.LanguageId); var existing = await dbContext.DictionaryLanguage .Where(l => langIds.Contains(l.LanguageId)) .Select(l => l.LanguageId) .AsNoTracking() .ToListAsync(); languages.ForEach(l => { dbContext.DictionaryLanguage.Attach(l); dbContext.Entry(l).State = existing.Contains(l.LanguageId) ? EntityState.Modified : EntityState.Added; }); }
public static async Task MergeVehicleType(this BlitzStaticianDbContext dbContext, List <DictionaryVehicleType> vehicleTypes) { var ids = vehicleTypes.Select(l => l.VehicleTypeId); var existing = await dbContext.DictionaryVehicleType .Where(l => ids.Contains(l.VehicleTypeId)) .Select(l => l.VehicleTypeId) .AsNoTracking() .ToListAsync(); vehicleTypes.ForEach(l => { dbContext.DictionaryVehicleType.Attach(l); dbContext.Entry(l).State = existing.Contains(l.VehicleTypeId) ? EntityState.Modified : EntityState.Added; }); }
public static async Task MergeAchievementSection(this BlitzStaticianDbContext dbContext, List <AchievementSection> achievementSections) { var ids = achievementSections.Select(l => l.Section); var existing = await dbContext.AchievementSection .Where(l => ids.Contains(l.Section)) .Select(l => l.Section) .AsNoTracking() .ToListAsync(); achievementSections.ForEach(l => { dbContext.AchievementSection.Attach(l); dbContext.Entry(l).State = existing.Contains(l.Section) ? EntityState.Modified : EntityState.Added; }); }
public static async Task MergeClanRoles(this BlitzStaticianDbContext dbContext, List <DictionaryClanRole> clanRoles) { var stopwatch = Stopwatch.StartNew(); var ids = clanRoles.Select(l => l.ClanRoleId); var existing = await dbContext.DictionaryClanRole .Where(l => ids.Contains(l.ClanRoleId)) .Select(l => l.ClanRoleId) .AsNoTracking() .ToListAsync(); clanRoles.ForEach(l => { dbContext.DictionaryClanRole.Attach(l); dbContext.Entry(l).State = existing.Contains(l.ClanRoleId) ? EntityState.Modified : EntityState.Added; }); stopwatch.Stop(); }
public BlitzStaticianDictionary(BlitzStaticianDbContext dbContext, ILogger <BlitzStaticianDictionary> logger) { _dbContext = dbContext; _logger = logger; }
public AchievementsDataAccessor(BlitzStaticianDbContext dbContext) { _dbContext = dbContext; }
private static void PopulateDatabase(BlitzStaticianDbContext dbContext, AccountInfo accountInfo) { dbContext.AccountInfo.Add(accountInfo); dbContext.SaveChanges(); }
public AccountDataAccessor(BlitzStaticianDbContext dbContext, IDbContextTransaction tran) { _dbContext = dbContext; _dummyTransaction = tran; }
public ReplicationDataAccessor(BlitzStaticianDbContext dbContext, ILogger <ReplicationDataAccessor> logger) { _logger = logger; _dbContext = dbContext; }
private static async Task DeleteAchievementOptions(BlitzStaticianDbContext dbContext) { await dbContext.Database.ExecuteSqlCommandAsync("TRUNCATE TABLE wotb.AchievementOption"); }
public AccountsTankInfoDataAccessor(BlitzStaticianDbContext dbContext) { _dbContext = dbContext; }
public ClanInfoDataAccessor(BlitzStaticianDbContext dbContext) { _dbContext = dbContext; }