public static void WeekAdd(DateTime startDate, DayOfWeek firstDayOfWeek, int numberOfPeriods, int year)
{
if (startDate.DayOfWeek != firstDayOfWeek)
{
throw new Csla.Rules.ValidationException("The start date's day of the week is not correct");
}
foreach (var week in WeekRepository.WeekFetchInfoList(year))
{
WeekRepository.WeekDelete(week.WeekId);
}
var numberOfWeeks = numberOfPeriods * 4;
var endDate = startDate.AddDays(numberOfWeeks * 7);
var weekCounter = 0;
var periodCounter = 0;
while (startDate < endDate)
{
var week = WeekRepository.WeekNew();
week.StartDate = startDate;
week.EndDate = week.StartDate.AddDays(6);
week.Year = year;
week.Period = periodCounter + 1;
WeekRepository.WeekSave(week);
startDate = startDate.AddDays(7);
weekCounter++;
if (weekCounter % 4 == 0)
{
periodCounter++;
}
}
}