private ElementResponse AddElementChores(Element element, int year) { var elementGenericChores = element.ElementGenericChores; ElementResponse ElementResponse = new ElementResponse(); ElementResponse.Chores = new List <ChoreResponse>(); ElementResponse.TotalChores = 0; List <Chore> AllChoresElement = new List <Chore>(); foreach (ElementGenericChore elemenGChore in elementGenericChores) { NewChoresGuideline newChoresGuideline = new NewChoresGuideline(); newChoresGuideline.GenericChore = elemenGChore.GenericChore; newChoresGuideline.ElementId = element.Id; GenericChore gChore = elemenGChore.GenericChore; Period gChorePeriod = gChore.Period; Chore LastChore = GetLastChore(element.Id, gChore.Id, year); if (LastChore == null) { newChoresGuideline.TimeSpanToAddChores = GetDefaultTimeSpan(year); } else if (IsTimeSpanIncomplete(LastChore, year) == true) { newChoresGuideline.TimeSpanToAddChores = ResumeTimeSpan(LastChore); } else { continue; } List <Chore> choresAdded = AddingElements(newChoresGuideline); AllChoresElement.AddRange(choresAdded); ChoreResponse choreResponse = new ChoreResponse(); choreResponse.TotalChores = choresAdded.Count(); choreResponse.Period = newChoresGuideline.GenericChore.Period; ElementResponse.Chores.Add(choreResponse); ElementResponse.TotalChores += choreResponse.TotalChores; } InsertChoresToDatabase(AllChoresElement); _formatsService.AddFormatValuesToChores(AllChoresElement); return(ElementResponse); }
private Chore CreateChore(NewChoresGuideline guideline, DateTime startDate, DateTime endDate) { Chore Chore = new Chore() { Id = Guid.NewGuid(), EntityStatus = EntityStatus.Active, ElementId = guideline.ElementId, StartDate = startDate, EndDate = endDate, GenericChoreId = guideline.GenericChore.Id, Status = ChoreStatus.Undone, UserId = null, }; return(Chore); }
private List <Chore> CreateDailyChoreList(NewChoresGuideline guideline) { DateTime endTimeSpan = guideline.TimeSpanToAddChores.End; DateTime startTimeSpan = guideline.TimeSpanToAddChores.Start; List <Chore> DailyChores = new List <Chore>(); for (DateTime d = startTimeSpan; d <= endTimeSpan; d = d.AddDays(1)) { DateTime choreStartDate = d; DateTime choreEndDate = new DateTime(d.Year, d.Month, d.Day, 23, 59, 59); Chore Chore = CreateChore(guideline, choreStartDate, choreEndDate); DailyChores.Add(Chore); } return(DailyChores); }
private List <Chore> CreateFourYearlyChoreList(NewChoresGuideline guideline) { DateTime endTimeSpan = guideline.TimeSpanToAddChores.End; DateTime startTimeSpan = guideline.TimeSpanToAddChores.Start; DateTime firstDayOfFourYearly = GetFirstDayOfFourYearly(startTimeSpan); List <Chore> FourYearlyChores = new List <Chore>(); for (DateTime d = firstDayOfFourYearly; d <= endTimeSpan; d = d.AddYears(4)) { DateTime choreStartDate = d; DateTime choreEndDate = GetLastDayOffourYearly(d); Chore Chore = CreateChore(guideline, choreStartDate, choreEndDate); FourYearlyChores.Add(Chore); } return(FourYearlyChores); }
private List <Chore> CreateSemesterChoreList(NewChoresGuideline guideline) { DateTime endTimeSpan = guideline.TimeSpanToAddChores.End; DateTime startTimeSpan = guideline.TimeSpanToAddChores.Start; DateTime firstDayOfSemester = GetFirstDayOfSemester(startTimeSpan); List <Chore> SemesterChores = new List <Chore>(); for (DateTime d = firstDayOfSemester; d <= endTimeSpan; d = d.AddMonths(6)) { DateTime choreStartDate = d; DateTime choreEndDate = GetLastDayOfSemester(d); Chore Chore = CreateChore(guideline, choreStartDate, choreEndDate); SemesterChores.Add(Chore); } return(SemesterChores); }
private List <Chore> CreateQuarterlyChoreList(NewChoresGuideline guideline) { DateTime endTimeSpan = guideline.TimeSpanToAddChores.End; DateTime startTimeSpan = guideline.TimeSpanToAddChores.Start; DateTime firstDayOfQuarterly = GetFirstDayOfQuarterly(startTimeSpan); List <Chore> QuarterlyChores = new List <Chore>(); for (DateTime d = firstDayOfQuarterly; d <= endTimeSpan; d = d.AddMonths(3)) { DateTime choreStartDate = d; DateTime choreEndDate = GetLastDayOfQuarterly(d); Chore Chore = CreateChore(guideline, choreStartDate, choreEndDate); QuarterlyChores.Add(Chore); } return(QuarterlyChores); }
private List <Chore> CreateMonthlyChoreList(NewChoresGuideline guideline) { DateTime endTimeSpan = guideline.TimeSpanToAddChores.End; DateTime startTimeSpan = guideline.TimeSpanToAddChores.Start; DateTime firstDayOfTheMonth = GetFirstDayOfMonth(startTimeSpan); List <Chore> MonthlyChores = new List <Chore>(); for (DateTime d = firstDayOfTheMonth; d <= endTimeSpan; d = d.AddMonths(1)) { DateTime choreStartDate = d; DateTime choreEndDate = GetLastDayOfMonth(d); Chore Chore = CreateChore(guideline, choreStartDate, choreEndDate); MonthlyChores.Add(Chore); } return(MonthlyChores); }
private List <Chore> AddingElements(NewChoresGuideline guideline) { Period period = guideline.GenericChore.Period; List <Chore> response = new List <Chore>(); switch (period) { case Period.Daily: response.AddRange(CreateDailyChoreList(guideline)); break; case Period.Weekly: response.AddRange(CreateWeeklyChoreList(guideline)); break; case Period.Monthly: response.AddRange(CreateMonthlyChoreList(guideline)); break; case Period.Bimonthly: response.AddRange(CreateBimonthlyChoreList(guideline)); break; case Period.Quarterly: response.AddRange(CreateQuarterlyChoreList(guideline)); break; case Period.Semester: response.AddRange(CreateSemesterChoreList(guideline)); break; case Period.Yearly: response.AddRange(CreateYearlyChoreList(guideline)); break; case Period.TwoYearly: response.AddRange(CreateTwoYearlyChoreList(guideline)); break; case Period.FourYearly: response.AddRange(CreateFourYearlyChoreList(guideline)); break; } return(response); }
private List <Chore> CreateWeeklyChoreList(NewChoresGuideline guideline) { DateTime endTimeSpan = guideline.TimeSpanToAddChores.End; DateTime startTimeSpan = guideline.TimeSpanToAddChores.Start; DateTime dateFirstMonday = FirstMonday(startTimeSpan); List <Chore> WeeklyChores = new List <Chore>(); for (DateTime d = dateFirstMonday; d <= endTimeSpan; d = d.AddDays(7)) { DateTime choreStartDate = d; DateTime choreEndDate = GetLastDayOfWeek(d); Chore Chore = CreateChore(guideline, choreStartDate, choreEndDate); WeeklyChores.Add(Chore); } return(WeeklyChores); }