public void GenerateSchedule(AvailableSubjects item) { var availableCourse = unitOfWork.AvailableCoursesRepo.Find(m => m.Id == item.AvailableCourseId); var endDate = availableCourse.SchoolYears.EndDate; foreach (var x in item.Schedule.Split(',')) { var startDate = availableCourse.SchoolYears.StartDate; while (startDate <= endDate) { //separate time var time = x.Split(' ')[0]; var dayOfWeek = x.Split(' ')[1].Split('-').Select(m => m.ToDayOfWeek()).ToList(); //separate day of weeks foreach (var d in dayOfWeek) { if (dayOfWeek.Contains(startDate?.DayOfWeek)) { item.Schedules.Add(new Schedules() { TimeIn = Convert.ToDateTime(startDate?.ToShortDateString() + " " + time.Split('-')[0]), TimeOut = Convert.ToDateTime(startDate?.ToShortDateString() + " " + time.Split('-')[1]) }); } startDate = startDate?.AddDays(1); } } } }
public void UpdateSchedule(AvailableSubjects item) { DeleteSchedule(item); var availableCourse = unitOfWork.AvailableCoursesRepo.Find(m => m.Id == item.AvailableCourseId); var endDate = availableCourse.SchoolYears.EndDate; // var startDate = availableCourse.SchoolYears.StartDate; List <Schedules> schedules = new List <Schedules>(); //separate time foreach (var x in item.Schedule.Split(',')) { var startDate = availableCourse.SchoolYears.StartDate; var time = x.Split(' ')[0]; var dayOfWeek = x.Split(' ')[1].Split('-').Select(m => m.ToDayOfWeek()).ToList(); //separate day of weeks while (startDate <= endDate) { foreach (var d in dayOfWeek) { if (dayOfWeek.Contains(startDate?.DayOfWeek)) { schedules.Add(new Schedules() { AvailableSubjectId = item.Id, TimeIn = Convert.ToDateTime(startDate?.ToShortDateString() + " " + time.Split('-')[0]), TimeOut = Convert.ToDateTime(startDate?.ToShortDateString() + " " + time.Split('-')[1]) }); } startDate = startDate?.AddDays(1); } } } unitOfWork.SchedulesRepo.InsertRange(schedules); unitOfWork.Save(); }
void DeleteSchedule(AvailableSubjects item) { modelDb.Database.ExecuteSqlCommand("delete from schedules where availableSubjectId={0}", item.Id); }