private void UpdateSubject(SubjectEntity subject, SubjectEntity newSubject) { subject.Hash = newSubject.Hash; subject.IsApproved = false; if (!HashCoder.IsSameHashes(subject.Info.Hash, newSubject.Info.Hash)) { UpdateSubjectInfo(subject.Info, newSubject.Info); } if (HashCoder.IsSameHashes(subject.HashDays, newSubject.HashDays)) { return; } UpdateDays(subject.Days, newSubject.Days); }
private void UpdatePeriods(List <PeriodEntity> periods, IReadOnlyCollection <PeriodEntity> newPeriods) { periods.RemoveAll(p => newPeriods.All(n => n.Number != p.Number)); foreach (PeriodEntity newPeriod in newPeriods) { PeriodEntity periodEntity = periods.FirstOrDefault(p => p.Number == newPeriod.Number); if (periodEntity == null) { periods.Add(newPeriod); continue; } if (HashCoder.IsSameHashes(periodEntity.Hash, newPeriod.Hash)) { continue; } UpdatePeriod(periodEntity, newPeriod); } }
private void UpdateSubjects(List <SubjectEntity> subjects, IReadOnlyCollection <SubjectEntity> newSubjects) { subjects.RemoveAll(s => newSubjects.All(n => n.Info.Title != s.Info.Title)); foreach (SubjectEntity newSubject in newSubjects) { SubjectEntity subjectEntity = subjects.FirstOrDefault(s => s.Info.Title == newSubject.Info.Title); if (subjectEntity == null) { subjects.Add(newSubject); continue; } if (HashCoder.IsSameHashes(subjectEntity.Hash, newSubject.Hash)) { continue; } UpdateSubject(subjectEntity, newSubject); } }
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); } }
public bool IsSameTimetable(TimetableEntity timetable, TimetableEntity newTimetable) { return(HashCoder.IsSameHashes(timetable.Hash, newTimetable.Hash)); }