public void EdmEnumMemberExpression() { var et = new EdmEnumType("NS", "Spicy"); var em = new EdmEnumMember(et, "Hot", new EdmEnumMemberValue(5)); var e = new EdmEnumMemberExpression(em); Assert.AreEqual(EdmExpressionKind.EnumMember, e.ExpressionKind, "e.ExpressionKind"); Assert.AreEqual("Hot", e.EnumMembers.Single().Name, "e.EnumMembers"); Assert.IsFalse(e.IsBad(), "e good"); this.VerifyThrowsException(typeof(ArgumentNullException), () => new EdmEnumMemberExpression(null)); var ee = new MutableEdmEnumMemberExpression(); Assert.IsNull(ee.EnumMembers, "e.EnumMembers"); Assert.IsTrue(ee.IsBad(), "Expression is bad."); Assert.AreEqual(1, ee.Errors().Count(), "Expression has errors"); }
public static void SetConformanceLevelCapabilitiesAnnotation(this EdmModel model, IEdmEntityContainer container, CapabilitiesConformanceLevelType level) { if (model == null) { throw new ArgumentNullException("model"); } if (container == null) { throw new ArgumentNullException("container"); } var target = container; var term = ConformanceLevelTerm; var name = new EdmEnumTypeReference(ConformanceLevelTypeType, false).ToStringLiteral((long)level); var expression = new EdmEnumMemberExpression(ConformanceLevelTypeType.Members.Single(m => m.Name == name)); var annotation = new EdmVocabularyAnnotation(target, term, expression); annotation.SetSerializationLocation(model, container.ToSerializationLocation()); model.AddVocabularyAnnotation(annotation); }
public static void SetPermissionsCoreAnnotation(this EdmModel model, IEdmProperty property, CorePermission value) { if (model == null) { throw new ArgumentNullException("model"); } if (property == null) { throw new ArgumentNullException("property"); } var target = property; var term = CoreVocabularyModel.PermissionsTerm; var name = new EdmEnumTypeReference(PermissionType, false).ToStringLiteral((long)value); var expression = new EdmEnumMemberExpression(PermissionType.Members.Single(m => m.Name == name)); var annotation = new EdmVocabularyAnnotation(target, term, expression); annotation.SetSerializationLocation(model, property.ToSerializationLocation()); model.AddVocabularyAnnotation(annotation); }
private static void EnumMemberExpressionDemo() { Console.WriteLine("EnumMemberExpressionDemo"); var model = new EdmModel(); var personType = new EdmEntityType("TestNS", "Person"); model.AddElement(personType); var pid = personType.AddStructuralProperty("Id", EdmPrimitiveTypeKind.Int32, false); personType.AddKeys(pid); personType.AddStructuralProperty("Name", EdmPrimitiveTypeKind.String); var colorType = new EdmEnumType("TestNS2", "Color", true); model.AddElement(colorType); colorType.AddMember("Cyan", new EdmIntegerConstant(1)); colorType.AddMember("Blue", new EdmIntegerConstant(2)); var outColorTerm = new EdmTerm("TestNS", "OutColor", new EdmEnumTypeReference(colorType, true)); model.AddElement(outColorTerm); var exp = new EdmEnumMemberExpression( new EdmEnumMember(colorType, "Blue", new EdmIntegerConstant(2)) ); var annotation = new EdmAnnotation(personType, outColorTerm, exp); annotation.SetSerializationLocation(model, EdmVocabularyAnnotationSerializationLocation.Inline); model.SetVocabularyAnnotation(annotation); ShowModel(model); var ann = model.FindVocabularyAnnotations <IEdmValueAnnotation>(personType, "TestNS.OutColor").First(); var memberExp = (IEdmEnumMemberExpression)ann.Value; foreach (var member in memberExp.EnumMembers) { Console.WriteLine(member.Name); } }