Example #1
0
        private CalendarPageViewModel GetSchedule(CalendarSettingsModel settingsModel)
        {
            var queryModel = new GetCalendarQueryModel
            {
                ItemHashes               = settingsModel.Items,
                HiddenEvents             = _mapper.Map <List <HidableEventEntity> >(settingsModel.HiddenEvents).ToArray(),
                ShowWindows              = settingsModel.ShowWindows,
                CountOfWeeksAfterCurrent = settingsModel.CountOfWeeksAfterCurrent
            };
            var queryResult = _getCalendarQuery.Execute(queryModel);

            var calendarModel = queryResult.IsSuccessful
                ? _mapper.Map <CalendarPageViewModel>(queryResult.Data)
                : new CalendarPageViewModel();

            if (settingsModel.Items.Length > calendarModel.Legend.Count)
            {
                calendarModel.ErrorMessage = "Сайт расписания ТПУ не вернул расписание для одной или нескольких групп. " +
                                             "Подождите 30 секунд или пару минут и повторите попытку...";
            }

            var newMatrix = new CalendarDayModel[2, 6];

            for (var i = 0; i < 2; i++)
            {
                for (var j = 0; j < 6; j++)
                {
                    newMatrix[i, j]        = calendarModel.Matrix[i, j];
                    newMatrix[i, j].Events = newMatrix[i, j].Events
                                             .GroupBy(x => (x.Date, x.Type, x.Name, x.Color))
                                             .Select(gr =>
                    {
                        var model     = gr.First();
                        model.Summary = gr.Select(x => (x.Place, x.Teacher)).ToArray();

                        return(model);
                    })
                                             .OrderBy(x => x.Date)
                                             .ThenBy(x => x.Color.ToArgb())
                                             .ToList();
                }
            }

            calendarModel.Matrix = newMatrix;

            return(calendarModel);
        }
Example #2
0
        private CalendarPageViewModel GetSchedule(CalendarSettingsModel settingsModel)
        {
            var queryModel = new GetCalendarQueryModel
            {
                ItemHashes               = settingsModel.Items,
                HiddenEvents             = _mapper.Map <List <HidableEventEntity> >(settingsModel.HiddenEvents).ToArray(),
                ShowWindows              = settingsModel.ShowWindows,
                CountOfWeeksAfterCurrent = settingsModel.CountOfWeeksAfterCurrent
            };
            var queryResult = _getCalendarQuery.Execute(queryModel);

            var calendarModel = queryResult.IsSuccessful
                ? _mapper.Map <CalendarPageViewModel>(queryResult.Data)
                : new CalendarPageViewModel();

            return(calendarModel);
        }