private void WriteValue(IInventoryItem item, string property, object value) { var complexValue = value as ODataComplexValue; if (complexValue != null) { //TODO: add complex value support in the IInventoryItem. WriteProperties(complexValue.Properties); return; } var multiValue = value as ODataCollectionValue; if (multiValue != null) { foreach (object itemValue in multiValue.Items) { WriteValue(item, property, itemValue); } return; } if (item == null) { // OData_MediaResource case, skip return; } InventoryPropertyName?inventoryProperty = GetPropertyNameFromColumnName(property); if (inventoryProperty.HasValue) { item.SetPropertyValue(inventoryProperty.Value, value); } }