Пример #1
0
        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);
        }
Пример #2
0
        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)
                }));
            }
        }