public FilteredAssetContainer(IAssetsContainer assetsContainer, AssetFilters assetFilters) { if (assetsContainer == null) { throw new ArgumentNullException("assetsContainer"); } this.assetsContainer = assetsContainer; this.assetFilters = assetFilters; }
private IDeliveryQuotation QuoteAssetsDelivery(IAssetsContainer assetsContainer, IDestination destination, AssetFilters assetFilters) { FilteredAssetContainer filteredAssetContainer = new FilteredAssetContainer(assetsContainer, assetFilters); return(carrierManager.GetAssetsDeliveryQuotations(filteredAssetContainer, destination)); }
public async Task <AssetImportReport> ImportAssets(IAssetsContainer assetsContainer, IDestination destination, AssetFilters assetsFilters) { if (assetsContainer.Assets.Count() == 0) { return(new AssetImportReport(null, destination)); } logger.LogDebug("Importing {0} assets to {1}", assetsContainer.Assets.Count(), destination); IDeliveryQuotation deliveryQuotation = QuoteAssetsDelivery(assetsContainer, destination, assetsFilters); AssetImportReport report = new AssetImportReport(deliveryQuotation, destination); logger.LogDebug("Delivery quotation for {0} assets ({1} exceptions)", deliveryQuotation.AssetsDeliveryQuotes.Count, deliveryQuotation.AssetsExceptions.Count); CheckDelivery(deliveryQuotation); foreach (var assetDeliveries in deliveryQuotation.AssetsDeliveryQuotes) { if (assetDeliveries.Value.Count() == 0) { report.AssetsExceptions.Add(assetDeliveries.Key, new AssetImportException("No delivery possible")); continue; } IResource importedResource = null; try { importedResource = await Import(assetDeliveries.Key, assetDeliveries.Value); if (importedResource == null) { throw new AssetImportException("Imported asset is null"); } } catch (AggregateException ae) { report.AssetsExceptions.Add(assetDeliveries.Key, ae); } // OK if (importedResource != null) { IAsset importedAsset = MakeAsset(importedResource, (IAsset)assetDeliveries.Value.First().Route); report.ImportedAssets.Add(assetDeliveries.Key, importedAsset); } } return(report); }
public async Task <AssetDeleteReport> DeleteAssets(IAssetsContainer assetsContainer, AssetFilters assetsFilters) { AssetDeleteReport assetDeleteReport = new AssetDeleteReport(); logger.LogDebug("Deleting {0} assets of {1}", assetsContainer.Assets.Count(), assetsContainer.Uri.ToString()); foreach (var asset in assetsContainer.Assets) { try { WebRoute assetRoute = WebRoute.Create(asset.Value.Uri, 0, credentials); await assetRoute.Remove(); } catch (Exception e) { logger.LogWarning("Cannot delete asset {0}({2}) : {1}", asset.Key, e.Message, asset.Value.Uri); assetDeleteReport.AssetsExceptions.Add(asset.Key, e); } } return(assetDeleteReport); }