public async Task ExecuteAsync(CancellationToken cancellationToken) { using (var scope = _scopeFactory.CreateScope()) { await _adminConfig.LoadConfigFromFile(AdminConfig.path); var banlistUpdater = scope.ServiceProvider.GetRequiredService <IBanlistDataToBanlistUpdater>(); var cardsAndArchetypesUpdater = scope.ServiceProvider.GetRequiredService <ICardsDataToCardsAndArchetypesUpdater>(); var betaToOfficialConverter = scope.ServiceProvider.GetRequiredService <IBetaCardToOfficialConverter>(); var adminConfig = scope.ServiceProvider.GetRequiredService <IAdminConfig>(); var mediator = scope.ServiceProvider.GetRequiredService <IMediator>(); var db = scope.ServiceProvider.GetRequiredService <YgoProAnalyticsDatabase>(); using (var transaction = db.Database.BeginTransaction()) { await betaToOfficialConverter.UpdateCardsFromBetaToOfficial(); await cardsAndArchetypesUpdater.UpdateCardsAndArchetypes(adminConfig.CardApiURL); var newBanlists = await banlistUpdater.UpdateBanlists(adminConfig.BanlistApiURL); await mediator.Publish(new CardsRelatedUpdatesCompleted(newBanlists)); transaction.Commit(); } } }
public async Task LoadConfigFromFile_FileDoesntExists_CreateNewNotEmptyFile() { await _adminConfig.LoadConfigFromFile(Path); Assert.Multiple(() => { Assert.IsTrue(File.Exists(Path)); Assert.IsNotEmpty(File.ReadAllText(Path)); Assert.AreEqual(JsonConvert.DeserializeObject <AdminConfig>(File.ReadAllText(Path)).MaxNumberOfResultsPerBrowserPage, _adminConfig.MaxNumberOfResultsPerBrowserPage); }); }