示例#1
0
        private static HashSet <Tuple <string, ValueSpecification> > GetAllSpecs(IViewCycle cycle)
        {
            var specSet = new HashSet <Tuple <string, ValueSpecification> >();

            var compiledViewDefinition = cycle.GetCompiledViewDefinition();

            foreach (var kvp in compiledViewDefinition.ViewDefinition.CalculationConfigurationsByName)
            {
                var viewCalculationConfiguration = kvp.Key;

                var dependencyGraphExplorer = compiledViewDefinition.GetDependencyGraphExplorer(viewCalculationConfiguration);
                Assert.NotNull(dependencyGraphExplorer);
                var wholeGraph = dependencyGraphExplorer.GetWholeGraph();

                IEnumerable <ValueSpecification> allSpecs = wholeGraph.DependencyNodes.SelectMany(n => n.OutputValues);
                var distinctKindsOfSpec = allSpecs
                                          .ToLookup(s => s.ValueName).Select(g => g.First());
                var specs = new HashSet <ValueSpecification>(distinctKindsOfSpec);

                if (!specs.Any())
                {
                    continue;
                }
                var computationCacheResponse = cycle.QueryComputationCaches(new ComputationCacheQuery(viewCalculationConfiguration, specs));
                Assert.InRange(computationCacheResponse.Results.Count, 0, specs.Count());
                foreach (var result in computationCacheResponse.Results)
                {
                    Assert.Contains(result.First, specs);
                    Assert.NotNull(result.Second);
                    ValueAssertions.AssertSensibleValue(result.Second);
                }
                var newSpecs = computationCacheResponse.Results.Select(p => Tuple.Create(viewCalculationConfiguration, p.First));
                foreach (var newSpec in newSpecs)
                {
                    Assert.True(specSet.Add(newSpec));
                }
            }

            return(specSet);
        }
        private static HashSet<Tuple<string, ValueSpecification>> GetAllSpecs(IViewCycle cycle)
        {
            var specSet = new HashSet<Tuple<string, ValueSpecification>>();

            var compiledViewDefinition = cycle.GetCompiledViewDefinition();
            foreach (var kvp in compiledViewDefinition.ViewDefinition.CalculationConfigurationsByName)
            {
                var viewCalculationConfiguration = kvp.Key;

                var dependencyGraphExplorer = compiledViewDefinition.GetDependencyGraphExplorer(viewCalculationConfiguration);
                Assert.NotNull(dependencyGraphExplorer);
                var wholeGraph = dependencyGraphExplorer.GetWholeGraph();

                IEnumerable<ValueSpecification> allSpecs = wholeGraph.DependencyNodes.SelectMany(n => n.OutputValues);
                var distinctKindsOfSpec = allSpecs
                    .ToLookup(s => s.ValueName).Select(g => g.First());
                var specs = new HashSet<ValueSpecification>(distinctKindsOfSpec);

                if (!specs.Any())
                {
                    continue;
                }
                var computationCacheResponse = cycle.QueryComputationCaches(new ComputationCacheQuery(viewCalculationConfiguration, specs));
                Assert.InRange(computationCacheResponse.Results.Count, 0, specs.Count());
                foreach (var result in computationCacheResponse.Results)
                {
                    Assert.Contains(result.First, specs);
                    Assert.NotNull(result.Second);
                    ValueAssertions.AssertSensibleValue(result.Second);
                }
                var newSpecs = computationCacheResponse.Results.Select(p => Tuple.Create(viewCalculationConfiguration, p.First));
                foreach (var newSpec in newSpecs)
                {
                    Assert.True(specSet.Add(newSpec));
                }
            }

            return specSet;
        }