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); }
public IAttributeStatistics Create(IEnumerable <string> attributeNames) { using (var connection = _connectionFactory.Create()) using (var command = new FileDistributionCommand(connection, attributeNames)) { return(new AttributeStatistics(FetchStatistics(command))); } }