Пример #1
0
        private Dictionary <string, AttributeSubtreeStatistics> FetchStatistics(
            FileDistributionCommand command)
        {
            var index = new Dictionary <string, AttributeSubtreeStatistics>(
                StringComparer.CurrentCultureIgnoreCase);

            foreach (var item in command.Execute())
            {
                if (!index.TryGetValue(item.Path, out var statistics))
                {
                    statistics = new AttributeSubtreeStatistics();
                    index.Add(item.Path, statistics);
                }

                if (string.IsNullOrEmpty(item.Group))
                {
                    statistics.AddSubset(Enumerable.Empty <string>(), item.Count);
                }
                else
                {
                    statistics.AddSubset(item.Group.Split(','), item.Count);
                }
            }

            return(index);
        }
Пример #2
0
 public IAttributeStatistics Create(IEnumerable <string> attributeNames)
 {
     using (var connection = _connectionFactory.Create())
         using (var command = new FileDistributionCommand(connection, attributeNames))
         {
             return(new AttributeStatistics(FetchStatistics(command)));
         }
 }