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); }
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)); } }