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