public bool TryGet(IModelDefinition modelDefinition, IFieldDefinition fieldDefinition, out IFieldView <IRenderContext> fieldView) { fieldView = null; if (modelDefinition.Identifier == nameof(Movie) && fieldDefinition.Identifier == nameof(Movie.RelatedMovieKeys)) { fieldView = new ControlFieldView <RelatedMoviesFieldEditor>(fieldDefinition, new RelatedMoviesFieldEditor(new RelatedMoviesViewModel(navigator, library))); } else if (fieldDefinition.Identifier == "Country") { fieldView = new ComboBoxFieldEditor <string>(fieldDefinition, GetCountries()); } else if (fieldDefinition.Identifier == "Category") { fieldView = new ComboBoxFieldEditor <string>(fieldDefinition, GetCategories()); } else if (fieldDefinition.FieldType == typeof(DateTime)) { fieldView = new DateFieldEditor(fieldDefinition); } else if (fieldDefinition.FieldType == typeof(string)) { fieldView = new StringFieldEditor(fieldDefinition); } else if (fieldDefinition.FieldType == typeof(int) || fieldDefinition.FieldType == typeof(int?)) { fieldView = new Int32FieldEditor(fieldDefinition); } return(fieldView != null); }
public void Should_not_add_error_if_inline_editing_is_allowed_for_editor(StringFieldEditor editor) { var sut = new StringFieldProperties { InlineEditable = true, Editor = editor, AllowedValues = ImmutableList.Create("Value") }; var errors = FieldPropertiesValidator.Validate(sut).ToList(); Assert.Empty(errors); }
public void Should_add_error_if_inline_editing_is_not_allowed_for_editor(StringFieldEditor editor) { var sut = new StringFieldProperties { InlineEditable = true, Editor = editor, AllowedValues = ImmutableList.Create("Value") }; var errors = FieldPropertiesValidator.Validate(sut).ToList(); errors.Should().BeEquivalentTo( new List <ValidationError> { new ValidationError("Inline editing is only allowed for dropdowns, slugs and input fields.", "InlineEditable", "Editor") }); }