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);
            }
        }