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