public ProductAttributeDisplay PutProductAttributeDetachedContent(
            [ModelBinder(typeof(ProductAttributeContentSaveBinder))]
            ProductAttributeContentSave attributeContentItem)
        {
            var contentTypeAlias = attributeContentItem.DetachedContentType.UmbContentType.Alias;
            var contentType      = _contentTypeService.GetContentType(contentTypeAlias);

            if (contentType == null)
            {
                var nullRef = new NullReferenceException("Could not find ContentType with alias: " + contentTypeAlias);
                MultiLogHelper.Error <ProductOptionApiController>("Failed to find content type", nullRef);
                throw nullRef;
            }

            var attribute = attributeContentItem.Display;

            attribute.DetachedDataValues = DetachedContentHelper.GetUpdatedValues <ProductAttributeContentSave, ProductAttributeDisplay>(contentType, attributeContentItem);
            var destination = _productOptionService.GetProductAttributeByKey(attribute.Key);

            destination = attribute.ToProductAttribute(destination);

            ((ProductOptionService)_productOptionService).Save(destination);

            return(destination.ToProductAttributeDisplay(contentType, DetachedValuesConversionType.Editor));
        }