public async Task <JsonResult> GetPeriods(PaymentPeriodicity paymentPeriodicity, DateTime initialDate, Int32 periodTotalDays) { var fixToMonth = paymentPeriodicity != PaymentPeriodicity.Weekly; var result = new PeriodSimulator().GetPeriodDetails(paymentPeriodicity, initialDate, periodTotalDays, fixToMonth); var periods = from r in result orderby r.Number select new { id = r.Number, description = r.InitialDate.ToString("dd/MMM/yyyy", new CultureInfo("es-mx")).Replace(".", "") }; return(await Task.FromResult(Json(periods))); }
public async Task PeriodSimulator_Should_Generate_Period_Details() { var periodSimulator = new PeriodSimulator(); var details = periodSimulator.GetPeriodDetails(PaymentPeriodicity.Weekly, new DateTime(2019, 12, 23), 7, false); Assert.True(details.Any()); Assert.True(details.Count == 53); details = periodSimulator.GetPeriodDetails(PaymentPeriodicity.Weekly, new DateTime(2019, 2, 25), 7, false); Assert.True(details.Any()); Assert.True(details.Count == 44); details = periodSimulator.GetPeriodDetails(PaymentPeriodicity.Weekly, new DateTime(2019, 10, 14), 7, false); Assert.True(details.Any()); Assert.True(details.Count == 63); }