private ServiceResult AddPeriod(PeriodDto periodDto) { SchoolDayEntity day = Context.SchoolDays .Include(d => d.Periods) .SingleOrDefault(d => d.Id == periodDto.SchoolDayId); if (day == null) { return(new ServiceResult(Result.NotFound)); } var periodEntity = new PeriodEntity(); periodEntity.Number = periodDto.Number; periodEntity.Cabinet = periodDto.Cabinet; periodEntity.Subgroup = periodDto.Subgroup; periodEntity.IsLecture = periodDto.IsLecture; periodEntity.Option = periodDto.Option; periodEntity.OptionDate = periodDto.OptionDate; periodEntity.OptionCabinet = periodDto.OptionCabinet; periodEntity.IsApproved = true; day.Periods.Add(periodEntity); Context.SaveChanges(); return(new ServiceResult(Result.OK, periodEntity.Id)); }
private void UpdateDay(SchoolDayEntity day, SchoolDayEntity newDay) { day.Hash = newDay.Hash; day.IsApproved = false; UpdatePeriods(day.Periods, newDay.Periods); }
private List <SchoolDayEntity> MapSchoolDays(List <SchoolDayModel> days) { var schoolDayEntities = new List <SchoolDayEntity>(); foreach (SchoolDayModel day in days) { SchoolDayEntity entity = MapOneSchoolDay(day); schoolDayEntities.Add(entity); } return(schoolDayEntities); }
private SchoolDayEntity MapOneSchoolDay(SchoolDayModel day) { string dayJson = TimetableSerializer.SerializeToJson(day); string dayHash = HashCoder.GetSha256Hash(dayJson); var entity = new SchoolDayEntity { Day = day.Day, IsDayOfEvenWeek = day.IsDayOfEvenWeek, Periods = MapPeriods(day.Periods), Hash = dayHash }; return(entity); }
public ServiceResult DeleteDay(int dayId) { SchoolDayEntity day = Context.SchoolDays .Include(d => d.Subject) .SingleOrDefault(d => d.Id == dayId); if (day == null) { return(new ServiceResult(Result.NotFound)); } int subjectId = day.Subject.Id; Context.SchoolDays.Remove(day); Context.SaveChanges(); SubjectService.UpdateApprovedStatus(subjectId); return(new ServiceResult(Result.OK, subjectId)); }
public ServiceResult UpdateApprovedStatus(int dayId) { SchoolDayEntity day = Context.SchoolDays .Include(d => d.Periods) .Include(d => d.Subject) .FirstOrDefault(d => d.Id == dayId); if (day == null) { return(new ServiceResult(Result.NotFound)); } day.IsApproved = day.Periods.All(p => p.IsApproved); Context.SaveChanges(); int subjectId = day.Subject.Id; SubjectService.UpdateApprovedStatus(subjectId); return(new ServiceResult(Result.OK, subjectId)); }
private void UpdateDays(List <SchoolDayEntity> days, IReadOnlyCollection <SchoolDayEntity> newDays) { days.RemoveAll(d => newDays.All(n => n.Day != d.Day && n.IsDayOfEvenWeek != d.IsDayOfEvenWeek)); foreach (SchoolDayEntity newDay in newDays) { SchoolDayEntity dayEntity = days .FirstOrDefault(d => d.Day == newDay.Day && d.IsDayOfEvenWeek == newDay.IsDayOfEvenWeek); if (dayEntity == null) { days.Add(newDay); continue; } if (HashCoder.IsSameHashes(dayEntity.Hash, newDay.Hash)) { continue; } UpdateDay(dayEntity, newDay); } }