コード例 #1
0
ファイル: PeriodsController.cs プロジェクト: jose2a/ADYC
        public IHttpActionResult Get(int id)
        {
            var period = _periodService.Get(id);

            if (period != null)
            {
                return(Ok(GetPeriodDto(period)));
            }

            return(NotFound());
        }
コード例 #2
0
        /// <inheritdoc />
        public CalendarDto GetInterval(int periodId)
        {
            var current = _periodService.Get(periodId);

            if (current == null)
            {
                return(null);
            }

            var calendar = new CalendarDto
            {
                PeriodId   = current.Id,
                PeriodName = current.Name,
                Days       = new List <DayDto>()
            };
            var dayList = new List <DayDto>();

            Enum.GetValues(typeof(DayOfWeek)).Cast <DayOfWeek>().ToList().ForEach(x =>
            {
                dayList.Add(new DayDto {
                    Tiles = new List <TileDto>(), DayOfWeek = x
                });
            });

            current.Subjects.Where(x => x.IsActive).ToList().ForEach(sub =>
            {
                sub.Courses.Where(x => x.IsSelected).ToList().ForEach(cour =>
                {
                    var dayId = dayList.FindIndex(x => (int)x.DayOfWeek == cour.Day);

                    if (dayId == -1)
                    {
                        throw new ArgumentException("Invalid day");
                    }

                    dayList[dayId].Tiles.Add(new TileDto
                    {
                        CourseId         = cour.Id,
                        SubjectId        = sub.Id,
                        Place            = cour.Place,
                        SubjectShortName = sub.ShortName,
                        SubjectLongName  = sub.LongName,
                        Number           = cour.Number,
                        Length           = cour.Length
                    });
                });
            });

            calendar.Days = dayList;
            return(calendar);
        }