Exemplo n.º 1
0
        public IEnumerable <ContentItemStats> GetMappingStats(string mappingName = null)
        {
            var searchPattern = mappingName == null ? "*.docx" : $"*_*_{mappingName}_*.docx";

            var allDocuments = Directory.GetFiles(DocumentsFolder, searchPattern)
                               .Select(o => ContentItemFactory.BuildDocumentSummary(o));

            var allMappings = Directory.GetFiles(MappingsFolder, "*.xlsm")
                              .Select(o => ContentItemFactory.BuildMappingSummary(o))
                              .GroupBy(o => new { o.TemplateName, o.TemplateVersion, o.MappingName })
                              .Select(o => o.OrderByDescending(o => o.TemplateVersion).First());

            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)
                }));
            }
        }
Exemplo n.º 2
0
        public IEnumerable <DocumentContentSummary> GetDocuments(string templateName = null, string templateVersion = null, string mappingName = null, string mappingVersion = null)
        {
            var pathPattern = $"{templateName ?? "*"}_{templateVersion ?? "*"}_{mappingName ?? "*"}_{mappingVersion ?? "*"}_*.docx";

            return(Directory.GetFiles(DocumentsFolder, pathPattern).Select(path => ContentItemFactory.BuildDocumentSummary(path)));
        }