public async Task <IActionResult> GetControlWeek( [FromBody] ControlWeekRequestModel requestModel, CancellationToken cancellationToken) { try { _logger.LogInformation("Request: " + requestModel); var result = await _controlWeekService.Get(requestModel, cancellationToken); _logger.LogInformation("Response: " + requestModel); return(Ok(result)); } catch (Exception ex) { _logger.LogError("Exception: " + ex); return(BadRequest(ex)); } }
public async Task <ControlWeekViewModel> Get(ControlWeekRequestModel requestModel, CancellationToken cancellationToken) { try { cancellationToken.ThrowIfCancellationRequested(); _logger.LogInformation("Get: " + $"{requestModel?.GroupName}"); var controlWeekList = await _controlWeekDatabaseService.Get(cancellationToken); var controlWeekControlModel = PrepareViewModel(controlWeekList, requestModel); return(controlWeekControlModel); } catch (Exception ex) { _logger.LogError("GetControlWeek Exception: " + ex); throw new NotSupportedException("Ошибка во время выполнения." + ex); } }
private ControlWeekViewModel PrepareViewModel( List <CourseScheduleDatabaseModel> controlWeekList, ControlWeekRequestModel requestModel) { // маппим список предметов из бд в модель представления var controlCourseViewModel = _mapper.Map <List <ControlCourseViewModel> >(controlWeekList); // удаляем пустые предметы и сортируем по позиции в раписании var sortedControlCourseViewModel = controlCourseViewModel .Where(w => !string.IsNullOrEmpty(w.CourseName) && w.CourseName != "Военная кафедра" && string.Equals(w.StudyGroupModel?.Name, requestModel.GroupName) ) .Select(s => { s.NameOfDayWeek = StringConverterHelper.UppercaseFirst(s.NameOfDayWeek); return(s); }) .OrderBy(o => StringConverterHelper.ToDayOfWeek(o.NameOfDayWeek)) .ToList(); // создаем результирующую модель представления var resultControlWeekViewModel = new ControlWeekViewModel { ControlCourseViewModel = sortedControlCourseViewModel, DatetimeRequest = DateTimeOffset.UtcNow.Date.ToShortDateString(), UpdateDatetime = _fileService.GetLastWriteTime(_fileName).Result.Date.ToShortDateString() }; _logger.LogInformation("PrepareViewModel: " + "CoursesViewModel: " + "DatetimeRequest: " + resultControlWeekViewModel.DatetimeRequest + " " + "CoursesViewModel.Count: " + resultControlWeekViewModel.ControlCourseViewModel.Count ); return(resultControlWeekViewModel); }