Exemple #1
0
        /// <summary>
        /// Binds the DateTime object.
        /// </summary>
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);

            if (value.FirstValue == null && bindingContext.ModelType == typeof(DateTime?))
            {
                bindingContext.Result = ModelBindingResult.Success(null);
                return(Task.CompletedTask);
            }

            DateTime dateTime;

            if (!DateTime.TryParse(value.FirstValue, out dateTime))
            {
                bindingContext.ModelState.AddModelError(bindingContext.ModelName, "Invalid date/time.");
                bindingContext.Result = ModelBindingResult.Failed();
                return(Task.CompletedTask);
            }

            bindingContext.Result = ModelBindingResult.Success(_timeZoneProvider.ToUtcTime(dateTime));
            return(Task.CompletedTask);
        }