I have the following problem, I get an array of dates with
DateList = new List<DateTime>();
DateTime startTime = DateTime.Now.AddYears(1);
var firstDayOfMonth = new DateTime(startTime.Year, startTime.Month, 1);
var lastDayOfMonth = firstDayOfMonth.AddMonths(1).AddTicks(-1);
var lastDayOfMonthCMP = firstDayOfMonth.AddDays(22);
var daysInPeriod = (lastDayOfMonthCMP - firstDayOfMonth).Days;
var daysInMonth = DateTime.DaysInMonth(startTime.Year, startTime.Month);
var dates = Enumerable.Range(1, daysInPeriod)
.Select(s => new DateTime(startTime.Year, startTime.Month, s))
.Where(date => date.DayOfWeek != DayOfWeek.Friday)
.Where(date => date.DayOfWeek != DayOfWeek.Saturday)
.Where(date => date.DayOfWeek != DayOfWeek.Sunday)
.Where(date => date.DayOfWeek != DayOfWeek.Monday)
.ToArray();
Now, I want to insert data in a table for each day in array but only 5 entries for each date. When count reach 5 it should pass to next date. I tried with:
foreach(var date in DateList)
{
var newData = new ProgCMP()
{
UCMP = ucmp,
TipCMP = "Test CMP",
ProgDate = date
};
var count = await _context.ProgCMPs.Where(s => s.ProgDate == newData.ProgDate).CountAsync();
if (count < 5)
{
if (await TryUpdateModelAsync(newData, "ProgCMP"))
{
_context.ProgCMPs.Add(newData);
await _context.SaveChangesAsync();
return RedirectToPage("/CMP/Index");
}
}
}
but is not working. what should be the approach?