/// <summary> /// Reset database /// </summary> /// <returns></returns> public async Task ResetDatabase() { var builder = new DbContextOptionsBuilder <CurrencyDbContext>(); builder.UseSqlServer(ConnectionStringHelper.GetDefaultConfigurationBuild().GetDefaultConnectionString()); using (var context = new CurrencyDbContext(builder.Options)) { var startDate = _holidayChecker.ReturnDateBeforeDayOff(CurrencyCollectionModel.StartDate); foreach (var currencyCode in CurrencyCollectionModel.CurrencyCodes) { if (string.IsNullOrWhiteSpace(currencyCode.Key) || string.IsNullOrWhiteSpace(currencyCode.Value)) { continue; } var itemsToRemove = context.CurrencyValues.Include(c => c.Currency).Where( c => c.Currency.CurrencyBeingMeasured.ToLower() == currencyCode.Key.ToLower() && c.Currency.CurrencyMatched.ToLower() == currencyCode.Value.ToLower() && (c.DailyDataOfCurrency >= startDate && c.DailyDataOfCurrency <= CurrencyCollectionModel.EndDate)); context.CurrencyValues.RemoveRange(itemsToRemove); await context.SaveChangesAsync(); } } }
public void ReturnDateBeforeDayOff_HolidayDate_ReturnChangedDate() { DateTime date = _holidayChecker.ReturnDateBeforeDayOff(new DateTime(2020, 5, 3)); date.Should().Be(new DateTime(2020, 4, 30)); }