/// <summary>
        /// Stores an asset transfer reference
        /// </summary>
        /// <param name="assetTransferReferenceEntity"></param>
        /// <param name="update"></param>
        public void StoreAssetTransferred(AssetTransferredEntity assetTransferredEntity)
        {
            // Using the Cache Manager store the asset transfer references
            // If update - treat the source URL as unique, if multiple web parts reference to this, then it will still refer to the single resource
            var cache = Cache.CacheManager.Instance;

            if (!cache.GetAssetsTransferred().Any(asset =>
                                                  string.Equals(asset.TargetAssetTransferredUrl, assetTransferredEntity.TargetAssetFolderUrl, StringComparison.InvariantCultureIgnoreCase)))
            {
                cache.AddAssetTransferredEntity(assetTransferredEntity);
            }
        }
        /// <summary>
        /// Get asset transfer details if they already exist
        /// </summary>
        public AssetTransferredEntity GetAssetTransferredIfExists(AssetTransferredEntity assetTransferredEntity)
        {
            try
            {
                // Using the Cache Manager retrieve asset transfer references (all)
                var cache = Cache.CacheManager.Instance;

                var result = cache.GetAssetsTransferred().SingleOrDefault(
                    asset => string.Equals(asset.TargetAssetFolderUrl, assetTransferredEntity.TargetAssetFolderUrl, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals(asset.SourceAssetUrl, assetTransferredEntity.SourceAssetUrl, StringComparison.InvariantCultureIgnoreCase));

                // Return the cached details if found, if not return original search
                return(result != default(AssetTransferredEntity) ? result : assetTransferredEntity);
            }
            catch (Exception ex)
            {
                LogError(LogStrings.Error_AssetTransferCheckingIfAssetExists, LogStrings.Heading_AssetTransfer, ex);
            }

            // Fallback in case of error - this will trigger a transfer of the asset
            return(assetTransferredEntity);
        }