/// <inheritdoc /> public override EnumTypeConfiguration AddEnumType(Type type) { if (type == null) { throw Error.ArgumentNull("type"); } if (!type.IsEnum) { throw Error.Argument("type", SRResources.TypeCannotBeEnum, type.FullName); } EnumTypeConfiguration enumTypeConfiguration = EnumTypes.SingleOrDefault(e => e.ClrType == type); if (enumTypeConfiguration == null) { enumTypeConfiguration = base.AddEnumType(type); foreach (object member in Enum.GetValues(type)) { enumTypeConfiguration.AddMember((Enum)member); } } return(enumTypeConfiguration); }
/// <inheritdoc /> public override EnumTypeConfiguration AddEnumType(Type type) { if (type == null) { throw Error.ArgumentNull("type"); } if (!type.IsEnum) { throw Error.Argument("type", SRResources.TypeCannotBeEnum, type.FullName); } EnumTypeConfiguration enumTypeConfiguration = EnumTypes.SingleOrDefault(e => e.ClrType == type); if (enumTypeConfiguration == null) { enumTypeConfiguration = base.AddEnumType(type); foreach (object member in Enum.GetValues(type)) { bool addedExplicitly = enumTypeConfiguration.Members.Any(m => m.Name.Equals(member.ToString())); EnumMemberConfiguration enumMemberConfiguration = enumTypeConfiguration.AddMember((Enum)member); enumMemberConfiguration.AddedExplicitly = addedExplicitly; } ApplyEnumTypeConventions(enumTypeConfiguration); } return(enumTypeConfiguration); }
public void PassNullToEnumTypeConfigurationAddMemberShouldThrowException() { // Arrange var builder = new ODataModelBuilder(); builder.EnumType <Color>(); EnumTypeConfiguration enumTypeConfiguration = builder.EnumTypes.Single(); // Act & Assert Assert.ThrowsArgumentNull( () => enumTypeConfiguration.AddMember(null), "member"); }
public void AddWrongEnumTypeMemberToConfigurationShouldThrowException() { // Arrange var builder = new ODataModelBuilder(); builder.EnumType <Color>(); EnumTypeConfiguration enumTypeConfiguration = builder.EnumTypes.Single(); // Act & Assert Assert.ThrowsArgument( () => enumTypeConfiguration.AddMember(SimpleEnum.First), "member", "The property 'First' does not belong to the type 'System.Web.OData.Builder.TestModels.Color'."); }
/// <summary> /// Adds a required enum member to the EDM type. /// </summary> /// <param name="enumMember">The member being added.</param> /// <returns>A configuration object that can be used to further configure the type.</returns> public EnumMemberConfiguration Member(TEnumType enumMember) { return(_configuration.AddMember((Enum)(object)enumMember)); }