public IEnumerable <DocumentContentSummary> GetDocuments(string templateName = null, string templateVersion = null, string mappingsName = null, string mappingsVersion = null) { var containerClient = GetDocumentsContainer(); var documents = containerClient .GetBlobs(BlobTraits.Metadata, BlobStates.None, null) .Select(o => ContentItemFactory.BuildDocumentSummary($"{containerClient.Uri}/{o.Name}", o)); if (!string.IsNullOrEmpty(templateName)) { documents = documents.Where(o => o.TemplateName == templateName); } if (!string.IsNullOrEmpty(templateVersion)) { documents = documents.Where(o => o.TemplateVersion == templateVersion); } if (!string.IsNullOrEmpty(mappingsName)) { documents = documents.Where(o => o.MappingName == mappingsName); } if (!string.IsNullOrEmpty(mappingsVersion)) { documents = documents.Where(o => o.MappingVersion == mappingsVersion); } return(documents); }
public IEnumerable <ContentItemStats> GetMappingStats(string mappingName = null) { var documentsContainerClient = GetDocumentsContainer(); var allDocuments = documentsContainerClient .GetBlobs(BlobTraits.Metadata, BlobStates.None, null) .Select(o => ContentItemFactory.BuildDocumentSummary($"{documentsContainerClient.Uri}/{o.Name}", o)); var mappingContainerClient = GetMappingsContainer(); var allMappings = mappingContainerClient .GetBlobs(BlobTraits.Metadata, BlobStates.None, null) .Select(o => ContentItemFactory.BuildMappingSummary($"{mappingContainerClient.Uri}/{o.Name}", o)); if (string.IsNullOrEmpty(mappingName)) { return(allMappings .GroupBy(o => o.MappingName) .Select(g => new ContentItemStats() { MappingName = g.Key, TemplateName = null, Templates = g.Select(o => o.TemplateName).Distinct().Count(), Documents = allDocuments.Count(d => d.MappingName == g.Key) })); } else { return(allMappings .Where(o => string.Equals(mappingName, o.MappingName, StringComparison.CurrentCultureIgnoreCase)) .GroupBy(o => o.TemplateName) .Select(g => new ContentItemStats() { MappingName = mappingName, TemplateName = g.Key, Templates = 1, Documents = allDocuments.Count(d => d.MappingName == mappingName && d.TemplateName == g.Key) })); } }