private bool Validate(EncryptedStringFieldEditViewModel viewModel, EncryptedStringField field, string prefix, IUpdateModel updater) { var settings = field.PartFieldDefinition.Settings.GetModel <EncryptedStringFieldSettings>(); if (settings.Required) { if (settings.IsVisible && string.IsNullOrWhiteSpace(viewModel.Value)) { updater.AddModelError(prefix, T("The field {0} is mandatory.", T(field.DisplayName))); return(false); } if (!settings.IsVisible && string.IsNullOrWhiteSpace(viewModel.Value) && string.IsNullOrWhiteSpace(field.Value)) { updater.AddModelError(prefix, T("The field {0} is mandatory.", T(field.DisplayName))); return(false); } if (!settings.IsVisible && string.IsNullOrWhiteSpace(viewModel.Value) && !string.IsNullOrWhiteSpace(field.Value)) { // Keep the already saved Value without showing a error. return(false); } } if (!settings.IsVisible && string.IsNullOrWhiteSpace(viewModel.Value) && !string.IsNullOrWhiteSpace(field.Value) && !viewModel.SaveIfEmpty) { // Keep the already saved Value without showing a error. return(false); } if (settings.ConfirmRequired && !viewModel.Value.Equals(viewModel.ConfirmValue)) { updater.AddModelError(prefix, T("The value of the field {0} must match the Confirm value.", T(field.DisplayName), settings.Pattern)); return(false); } if (!CheckPattern(viewModel.Value, settings.Pattern)) { updater.AddModelError(prefix, T("The value of the field {0} is not valid." + Environment.NewLine + "Pattern: {1}", T(field.DisplayName), settings.Pattern)); return(false); } return(true); }
private EncryptedStringFieldEditViewModel CreateViewModel(EncryptedStringField field) { var settings = field.PartFieldDefinition.Settings.GetModel <EncryptedStringFieldSettings>(); var vm = new EncryptedStringFieldEditViewModel(settings) { //Settings = settings, DisplayName = field.PartFieldDefinition.DisplayName, HasValue = !string.IsNullOrWhiteSpace(field.Value) }; // Show the value if it's visible only. if (settings.IsVisible) { vm.Value = _secureFieldService.DecodeValue(field); } return(vm); }
// This function saves the field after a post, then shows the field form again. protected override DriverResult Editor(ContentPart part, EncryptedStringField field, IUpdateModel updater, dynamic shapeHelper) { if (AuthorizeEdit(part, field)) { var viewModel = new EncryptedStringFieldEditViewModel(field.PartFieldDefinition.Settings.GetModel <EncryptedStringFieldSettings>()); string prefix = GetPrefix(field, part); if (updater.TryUpdateModel(viewModel, prefix, null, null)) { if (Validate(viewModel, field, prefix, updater)) { _secureFieldService.EncodeValue(part, field, viewModel.Value); } else { return(ContentShapeFromViewModel(part, field, ShapeTypeAuthorized, TemplateNameAuthorized, viewModel, shapeHelper)); } } } // Call the function to show the view. return(Editor(part, field, shapeHelper)); }
private DriverResult ContentShapeFromViewModel(ContentPart part, EncryptedStringField field, string shapeType, string templateName, EncryptedStringFieldEditViewModel viewModel, dynamic shapeHelper) { return(ContentShape(shapeType, GetDifferentiator(field, part), () => { return shapeHelper.EditorTemplate( TemplateName: templateName, Model: viewModel, Prefix: GetPrefix(field, part)); })); }