Example #1
0
        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);
            }
        }
Example #3
0
        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()));
            }
        }