private void CacheAttributes(Attribute[] attributes) { DataType = attributes.OfType<DataTypeAttribute>().FirstOrDefault(); Display = attributes.OfType<DisplayAttribute>().FirstOrDefault(); DisplayColumn = attributes.OfType<DisplayColumnAttribute>().FirstOrDefault(); DisplayFormat = attributes.OfType<DisplayFormatAttribute>().FirstOrDefault(); DisplayName = attributes.OfType<DisplayNameAttribute>().FirstOrDefault(); Editable = attributes.OfType<EditableAttribute>().FirstOrDefault(); #if false HiddenInput = attributes.OfType<HiddenInputAttribute>().FirstOrDefault(); #endif ReadOnly = attributes.OfType<ReadOnlyAttribute>().FirstOrDefault(); Required = attributes.OfType<RequiredAttribute>().FirstOrDefault(); ScaffoldColumn = attributes.OfType<ScaffoldColumnAttribute>().FirstOrDefault(); var uiHintAttributes = attributes.OfType<UIHintAttribute>(); // Developer note: this loop is explicitly unrolled because Linq lambdas methods are not // [SecuritySafeCritical] and generate security exceptions accessing DataAnnotations types. UIHintAttribute bestUIHint = null; foreach (UIHintAttribute uiHintAttribute in uiHintAttributes) { string presentationLayer = uiHintAttribute.PresentationLayer; if (String.Equals(presentationLayer, "MVC", StringComparison.OrdinalIgnoreCase)) { bestUIHint = uiHintAttribute; break; } if (bestUIHint == null && String.IsNullOrEmpty(presentationLayer)) { bestUIHint = uiHintAttribute; } } UIHint = bestUIHint; if (DisplayFormat == null && DataType != null) { DisplayFormat = DataType.DisplayFormat; } }
public void UIHintAttribute_Simple_Ctors_Set_Properties() { var attr = new UIHintAttribute(null, null); Assert.IsNull(attr.UIHint); Assert.IsNull(attr.PresentationLayer); Assert.AreEqual(0, attr.ControlParameters.Count); attr = new UIHintAttribute(string.Empty, string.Empty); Assert.AreEqual(string.Empty, attr.UIHint); Assert.AreEqual(string.Empty, attr.PresentationLayer); Assert.AreEqual(0, attr.ControlParameters.Count); attr = new UIHintAttribute("theHint"); Assert.AreEqual("theHint", attr.UIHint); Assert.IsNull(attr.PresentationLayer); Assert.AreEqual(0, attr.ControlParameters.Count); attr = new UIHintAttribute("theHint", "theLayer"); Assert.AreEqual("theHint", attr.UIHint); Assert.AreEqual("theLayer", attr.PresentationLayer); Assert.AreEqual(0, attr.ControlParameters.Count); }
public void TemplateHint_AttributesHaveExpectedPrecedence() { // Arrange var expected = "this is a hint"; var hidden = new HiddenInputAttribute(); var uiHint = new UIHintAttribute(expected); var provider = CreateProvider(new object[] { hidden, uiHint, }); var metadata = provider.GetMetadataForType(typeof(string)); // Act var result = metadata.TemplateHint; // Assert Assert.Equal(expected, result); }
public void Equals_SameObjectType() { var a1 = new UIHintAttribute("foo"); var a2 = new UIHintAttribute("foo"); var b1 = new UIHintAttribute("foo", "bar"); var b2 = new UIHintAttribute("foo", "bar"); Assert.IsTrue(a1.Equals(a2)); Assert.IsTrue(a2.Equals(a1)); Assert.IsTrue(b1.Equals(b2)); Assert.IsTrue(b2.Equals(b1)); Assert.IsFalse(a1.Equals(b1)); Assert.IsFalse(b1.Equals(a1)); }
public void ConstructorControlParameters_DuplicateKey() { var attr = new UIHintAttribute("", "", "key", "value1", "key", "value2"); var v = attr.ControlParameters; }
public void ConstructorControlParameters_NullKey() { var attr = new UIHintAttribute("", "", null, "value"); var v = attr.ControlParameters; }
public void ConstructorControlParameters_UnevenNumber() { var attr = new UIHintAttribute("", "", ""); var v = attr.ControlParameters; }
public void Equals_DoesNotThrow() { var a1 = new UIHintAttribute("foo", "bar"); var a2 = new UIHintAttribute("foo", "bar", 1); Assert.IsFalse(a1.Equals(a2)); Assert.IsFalse(a2.Equals(a1)); }
public void Equals_SameObjectType_WithParamsDictionary() { var a1 = new UIHintAttribute("foo", "bar", "a", 1, "b", false); var a2 = new UIHintAttribute("foo", "bar", "b", false, "a", 1); Assert.IsTrue(a1.Equals(a2)); Assert.IsTrue(a2.Equals(a1)); }