public override async Task <IDisplayResult> UpdateAsync(DateTimeField field, IUpdateModel updater, UpdateFieldEditorContext context)
        {
            var model = new EditDateTimeFieldViewModel();

            if (await updater.TryUpdateModelAsync(model, Prefix, f => f.LocalDateTime))
            {
                var settings = context.PartFieldDefinition.GetSettings <DateTimeFieldSettings>();
                if (settings.Required && model.LocalDateTime == null)
                {
                    updater.ModelState.AddModelError(Prefix, nameof(model.LocalDateTime), S["A value is required for {0}.", context.PartFieldDefinition.DisplayName()]);
                }
                else
                {
                    if (model.LocalDateTime == null)
                    {
                        field.Value = null;
                    }
                    else
                    {
                        field.Value = await _localClock.ConvertToUtcAsync(model.LocalDateTime.Value);
                    }
                }
            }

            return(Edit(field, context));
        }
        public override async Task <IDisplayResult> UpdateAsync(DateTimeField field, IUpdateModel updater, UpdateFieldEditorContext context)
        {
            var model = new EditDateTimeFieldViewModel();

            if (await updater.TryUpdateModelAsync(model, Prefix, f => f.LocalDateTime))
            {
                if (model.LocalDateTime == null)
                {
                    field.Value = null;
                }
                else
                {
                    field.Value = await _localClock.ConvertToUtcAsync(model.LocalDateTime.Value);
                }
            }

            return(Edit(field, context));
        }
Exemple #3
0
        public override async Task <IDisplayResult> UpdateAsync(DateTimeField field, IUpdateModel updater, UpdateFieldEditorContext context)
        {
            var viewModel = new EditDateTimeFieldViewModel();

            bool modelUpdated = await updater.TryUpdateModelAsync(viewModel, Prefix, f => f.Value);

            if (modelUpdated)
            {
                field.Value = null;
                var      settings = context.PartFieldDefinition.Settings.ToObject <DateTimeFieldSettings>();
                DateTime dateTime;
                if (DateTime.TryParseExact(viewModel.Value, settings.Format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
                {
                    field.Value = dateTime;
                }
                else
                {
                    updater.ModelState.AddModelError(Prefix, T["Date is invalid to formar {0}.", settings.Format]);
                }
            }

            return(Edit(field, context));
        }