Пример #1
0
        private ExamScheduleViewModel PrepareViewModel(
            List <ExamScheduleDatabaseModel> examScheduleList,
            ExamScheduleRequestModel requestModel)
        {
            // маппим список предметов из бд в модель представления
            var controlCourseViewModel = _mapper.Map <List <ExamCourseViewModel> >(examScheduleList);

            // удаляем пустые предметы и сортируем по позиции в раписании
            var sortedControlCourseViewModel = controlCourseViewModel
                                               .Where(w => !string.IsNullOrEmpty(w.CourseName) &&
                                                      string.Equals(w.StudyGroupModel.Name, requestModel.GroupName)
                                                      )
                                               .OrderBy(o => Int32.Parse(o.NumberDate))
                                               .ToList();

            // создаем результирующую модель представления
            var resultControlWeekViewModel = new ExamScheduleViewModel
            {
                ExamCourseViewModel = sortedControlCourseViewModel,
                DatetimeRequest     = DateTimeOffset.UtcNow.Date.ToShortDateString(),
                UpdateDatetime      = _fileService.GetLastWriteTime(_fileName).Result.Date.ToShortDateString()
            };

            _logger.LogInformation("PrepareViewModel: "
                                   + "ExamViewModel: " + "DatetimeRequest: " +
                                   resultControlWeekViewModel.DatetimeRequest + " " +
                                   "ExamCourseViewModel.Count: " + resultControlWeekViewModel.ExamCourseViewModel.Count
                                   );

            return(resultControlWeekViewModel);
        }
Пример #2
0
        public async Task <ExamScheduleViewModel> Get(ExamScheduleRequestModel requestModel)
        {
            try
            {
                _logger.LogInformation("Get: " + $"{requestModel?.GroupName}");

                if (requestModel == null)
                {
                    throw new NotSupportedException();
                }

                var parameters = new ExamScheduleParametersModel
                {
                    CourseTypeExam         = CourseType.ExamCourse,
                    CourseTypeConsultation = CourseType.СonsultationCourse,
                    StudyGroupModel        = new StudyGroupModel {
                        Name = requestModel.GroupName
                    }
                };

                var examScheduleList = await _examScheduleDatabaseService.GetByParameters(parameters);

                var examScheduleViewModel = PrepareViewModel(examScheduleList, requestModel);

                return(examScheduleViewModel);
            }
            catch (Exception ex)
            {
                _logger.LogError("GetExamSchedule Exception: " + ex);
                throw new NotSupportedException("Ошибка во время выполнения." + ex);
            }
        }
        public async Task <IActionResult> GetExamSchedule([FromBody] ExamScheduleRequestModel requestModel)
        {
            try
            {
                _logger.LogInformation("Request: " + requestModel);

                var result = await _examScheduleService.Get(requestModel);

                _logger.LogInformation("Response: " + requestModel);

                return(Ok(result));
            }
            catch (Exception ex)
            {
                _logger.LogError("Exception: " + ex);
                return(BadRequest(ex));
            }
        }