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)); }
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)); }