public async Task <IActionResult> GetCourseScheduleSelected( [FromBody] CourseScheduleRequestModel requestModel) { try { _logger.LogInformation("Request: " + requestModel); // часовой пояс пользователя (по умолчанию - Москва, +3 часа к UTC) var userAccountRequestData = new UserAccountRequestDataCourseSchedule { TimeZoneId = TimeZoneInfo.Local.Id //"Russian Standard Time" }; // переводим utc время в часовой пояс пользователя var datetimeRequestUser = TimeZoneInfo.ConvertTime(requestModel.DateTimeRequest, TimeZoneInfo.FindSystemTimeZoneById(userAccountRequestData.TimeZoneId)); var courseScheduleDtoModel = new CourseScheduleDtoModel { DateTimeRequest = datetimeRequestUser, GroupName = requestModel.GroupName }; // подготавливаем ViewModel для отображения var courseScheduleViewModel = await _courseScheduleService.Get(courseScheduleDtoModel); _logger.LogInformation("Response: " + courseScheduleViewModel); return(Ok(courseScheduleViewModel)); } catch (Exception ex) { _logger.LogError("Exception: " + ex); return(BadRequest(new CourseScheduleViewModel())); } }
public async Task <CourseScheduleViewModel> Get(CourseScheduleDtoModel input) { if (input == null) { throw new ArgumentNullException(nameof(input)); } _logger.LogInformation("Get: " + "DatetimeRequest: " + input.DateTimeRequest + " " + "GroupName: " + input.GroupName); try { // подготавливаем параметры для получения расписания var courseScheduleParameters = new CourseScheduleParameters { NumberWeek = _parityOfTheWeekService.GetCountParityOfWeek(input.DateTimeRequest), NameOfDayWeek = CultureInfo.GetCultureInfo("ru-RU").DateTimeFormat .GetDayName(input.DateTimeRequest.DayOfWeek).ToLower(), ParityWeek = _parityOfTheWeekService.GetParityOfTheWeekByDateTime(input.DateTimeRequest), GroupName = input.GroupName, DatetimeRequest = input.DateTimeRequest, FileName = _fileName }; var courseScheduleDatabaseModel = await _courseScheduleDatabaseService.GetByParameters(courseScheduleParameters); var courseScheduleModel = _mapper.Map <List <CourseScheduleModel> >(courseScheduleDatabaseModel); var result = PrepareViewModel(courseScheduleModel, courseScheduleParameters); _logger.LogInformation("Get: " + result); return(result); } catch (Exception ex) { _logger.LogError("Get Exception: " + ex); throw new NotSupportedException("Ошибка во время выполнения." + ex); } }
public IActionResult GetToday() { try { // часовой пояс пользователя (по умолчанию - Москва, +3 часа к UTC) var userAccountRequestData = new UserAccountRequestDataCourseSchedule { TimeZoneId = TimeZoneInfo.Local.Id, //"Russian Standard Time" GroupName = "БББО-01-16" }; var datetimeUtc = DateTime.UtcNow; _logger.LogInformation("Request: ", "DateTimeRequest: " + datetimeUtc, " ", "GroupName " + userAccountRequestData.GroupName); // переводим utc время в часовой пояс пользователя var datetimeRequestUser = TimeZoneInfo.ConvertTime(datetimeUtc, TimeZoneInfo.FindSystemTimeZoneById(userAccountRequestData.TimeZoneId)); var courseScheduleDtoModel = new CourseScheduleDtoModel { DateTimeRequest = datetimeRequestUser, GroupName = userAccountRequestData.GroupName }; // подготавливаем ViewModel для отображения var courseScheduleViewModel = _courseScheduleService.Get(courseScheduleDtoModel); _logger.LogInformation("Response: " + courseScheduleViewModel); return(Ok(courseScheduleViewModel)); } catch (Exception ex) { _logger.LogError($"Exception: " + ex); return(BadRequest(new CourseScheduleViewModel())); } }