public IHttpActionResult PostUntypedSimpleOpenCustomer(EdmEntityObject customer) { object nameValue; customer.TryGetPropertyValue("Name", out nameValue); Type nameType; customer.TryGetPropertyType("Name", out nameType); return(null); }
public IActionResult PostUntypedSimpleOpenCustomer(EdmEntityObject customer) { // Verify there is a string dynamic property in OpenEntityType object nameValue; customer.TryGetPropertyValue("Name", out nameValue); Type nameType; customer.TryGetPropertyType("Name", out nameType); Assert.NotNull(nameValue); Assert.Equal(typeof(String), nameType); Assert.Equal("FirstName 6", nameValue); // Verify there is a collection of double dynamic property in OpenEntityType object doubleListValue; customer.TryGetPropertyValue("DoubleList", out doubleListValue); Type doubleListType; customer.TryGetPropertyType("DoubleList", out doubleListType); Assert.NotNull(doubleListValue); Assert.Equal(typeof(List <Double>), doubleListType); // Verify there is a collection of complex type dynamic property in OpenEntityType object addressesValue; customer.TryGetPropertyValue("Addresses", out addressesValue); Assert.NotNull(addressesValue); // Verify there is a complex type dynamic property in OpenEntityType object addressValue; customer.TryGetPropertyValue("Address", out addressValue); Type addressType; customer.TryGetPropertyType("Address", out addressType); Assert.NotNull(addressValue); Assert.Equal(typeof(EdmComplexObject), addressType); // Verify there is a collection of enum type dynamic property in OpenEntityType object favoriteColorsValue; customer.TryGetPropertyValue("FavoriteColors", out favoriteColorsValue); EdmEnumObjectCollection favoriteColors = favoriteColorsValue as EdmEnumObjectCollection; Assert.NotNull(favoriteColorsValue); Assert.NotNull(favoriteColors); Assert.Equal(typeof(EdmEnumObject), favoriteColors[0].GetType()); // Verify there is an enum type dynamic property in OpenEntityType object favoriteColorValue; customer.TryGetPropertyValue("FavoriteColor", out favoriteColorValue); Assert.NotNull(favoriteColorValue); Assert.Equal("Red", ((EdmEnumObject)favoriteColorValue).Value); Type favoriteColorType; customer.TryGetPropertyType("FavoriteColor", out favoriteColorType); Assert.Equal(typeof(EdmEnumObject), favoriteColorType); // Verify there is a string dynamic property in OpenComplexType EdmComplexObject address = addressValue as EdmComplexObject; object cityValue; address.TryGetPropertyValue("City", out cityValue); Type cityType; address.TryGetPropertyType("City", out cityType); Assert.NotNull(cityValue); Assert.Equal(typeof(String), cityType); Assert.Equal("City 6", cityValue); // It reads as ODataUntypedValue, and the RawValue is the string with the "" return(Ok(customer)); }