Exemple #1
0
        public async Task <ActionResult> DeleteWamsAsset(string id)
        {
            var asset = _wamsClient.GetAssetById(id);
            await _wamsClient.DeleteAssetAsync(asset).ConfigureAwait(continueOnCapturedContext: false);

            return(new EmptyResult());
        }
        private async Task DeleteAssetAsync(Asset asset)
        {
            try {
                if (asset.UploadState.Status == AssetUploadStatus.Uploading)
                {
                    Logger.Information("Asset with record ID {0} is uploading; setting upload status to Canceled.", asset.Record.Id);

                    // Instruct AssetUploader to cease uploading, delete WAMS asset and clean up temporary storage.
                    asset.UploadState.Status = AssetUploadStatus.Canceled;
                }
                else
                {
                    var wamsAsset = !String.IsNullOrEmpty(asset.WamsAssetId) ? _wamsClient.GetAssetById(asset.WamsAssetId) : null;

                    if (wamsAsset != null)
                    {
                        await _wamsClient.DeleteAssetAsync(wamsAsset).ConfigureAwait(continueOnCapturedContext: false);
                    }

                    if (!String.IsNullOrEmpty(asset.LocalTempFileName))
                    {
                        _fileManager.DeleteFile(asset.LocalTempFileName);
                        asset.LocalTempFileName = null;
                        asset.LocalTempFileSize = null;
                    }
                }

                asset.PublishState.Status     = AssetPublishStatus.Removed;
                asset.PublishState.RemovedUtc = _clock.UtcNow;

                Logger.Information("Asset with record ID {0} was deleted.", asset.Record.Id);
            }
            catch (Exception ex) {
                Logger.Error(ex, "Error while deleting asset with record ID {0}.", asset.Record.Id);
                throw;
            }
        }