/// <summary> /// Filters a collection of entities from a filter definition /// </summary> /// <param name="prefix">Filter objects by prefix</param> /// <returns>Filtered collection of entities</returns> public async Task <IEnumerable <Interfaces.BlobInfo> > FindAsync(string prefix) { BlobContinuationToken continuationToken = null; BlobResultSegment resultSegment = null; var blobs = new List <Interfaces.BlobInfo>(); do { resultSegment = await container.ListBlobsSegmentedAsync(prefix, true, BlobListingDetails.Metadata, null, continuationToken, null, null); if (resultSegment != null && resultSegment.Results != null) { foreach (var cloudBlob in resultSegment.Results) { var block = cloudBlob as CloudBlockBlob; if (block != null) { var blob = new Interfaces.BlobInfo(); blob.Id = block.Name; blob.Size = block.Properties.Length; blob.Uri = block.Uri; blobs.Add(blob); } } continuationToken = resultSegment.ContinuationToken; } else { continuationToken = null; } }while (continuationToken != null); return(blobs); }
/// <summary> /// Gets an entity by id. /// </summary> /// <param name="id">Filter to find a single item</param> /// <returns>Entity</returns> public async Task <Interfaces.BlobInfo> GetByIdAsync(object id) { try { CloudBlockBlob block = container.GetBlockBlobReference(id.ToString()); await block.FetchAttributesAsync(); var blob = new Interfaces.BlobInfo(); blob.Id = block.Name; blob.Size = block.Properties.Length; blob.Uri = block.Uri; return(blob); } catch { return(null); } }