Beispiel #1
0
        private DateConvertResult ConvertDate(string timezone, DateTime inDateTime)
        {
            DateConvertResult result = new DateConvertResult();

            result.dateConvertOut = inDateTime;
            result.errorType      = 0;
            if (string.IsNullOrEmpty(timezone))
            {
                return(result);
            }
            if (!_timeZoneCorrector.ConvertToUtcFromCustomTimeZone(timezone, (DateTime)inDateTime, out result.dateConvertOut))
            {
                result.errorType = -2;
            }
            return(result);
        }
        public ActionResult GetUTCDataTimeByTimeZone([FromQuery] DataQuery query)
        {
            if (query.timeZoneName == null)
            {
                ModelState.AddModelError("timeZoneName", "Отсутствует значение параметра");
            }
            if (query.date == null)
            {
                ModelState.AddModelError("date", "Отсутствует значение параметра");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(new ResponseError
                {
                    error = true,
                    message = GetModelStateError()
                }));
            }

            DateTime dateFormat;

            if (!DateTime.TryParse(query.date, null, System.Globalization.DateTimeStyles.RoundtripKind, out dateFormat))
            {
                ModelState.AddModelError("date", "Недопустимый формат даты");
            }
            if (_timeZoneCorrector.ConvertToUtcFromCustomTimeZone(query.timeZoneName, dateFormat, out DateTime utcDate))
            {
                return(Ok(new ResponseResult <DateTime>()
                {
                    error = false,
                    result = utcDate
                }));
            }
            else
            {
                return(BadRequest(new ResponseError
                {
                    error = true,
                    message = "Date not converted"
                }));
            }
        }