public IEnumerable <MappingContentSummary> GetMappings(string templateName, string templateVersion, string mappingName = null) { if (string.IsNullOrEmpty(templateName)) { throw new ArgumentNullException(nameof(templateName)); } var prefix = templateName; if (!string.IsNullOrEmpty(templateVersion)) { prefix += "_" + templateVersion; if (!string.IsNullOrEmpty(mappingName)) { prefix += "_" + mappingName; } } var containerClient = GetMappingsContainer(); var blobs = containerClient.GetBlobs(BlobTraits.Metadata, BlobStates.None, prefix); var items = blobs .Select(o => ContentItemFactory.BuildMappingSummary($"{containerClient.Uri}/{o.Name}", o)); if (string.IsNullOrEmpty(templateVersion) && !string.IsNullOrEmpty(mappingName)) { items = items.Where(o => o.Name.EndsWith(mappingName)); } return(items); }
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) })); } }