Example #1
0
        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));
        }
Example #2
0
        private void UpdateDay(SchoolDayEntity day, SchoolDayEntity newDay)
        {
            day.Hash       = newDay.Hash;
            day.IsApproved = false;

            UpdatePeriods(day.Periods, newDay.Periods);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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));
        }
Example #6
0
        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));
        }
Example #7
0
        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);
            }
        }