コード例 #1
0
        /// <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();
                }
            }
        }
コード例 #2
0
        public void ReturnDateBeforeDayOff_HolidayDate_ReturnChangedDate()
        {
            DateTime date = _holidayChecker.ReturnDateBeforeDayOff(new DateTime(2020, 5, 3));

            date.Should().Be(new DateTime(2020, 4, 30));
        }