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