private HashSet <PropertyDefinition> GetDependencies()
        {
            HashSet <PropertyDefinition> hashSet = new HashSet <PropertyDefinition>();

            foreach (Tuple <ConversationFeature, double> tuple in this.featuresAndWeights)
            {
                foreach (PropertyDefinition propertyDefinition in tuple.Item1.SupportingProperties)
                {
                    ApplicationAggregatedProperty item = (ApplicationAggregatedProperty)propertyDefinition;
                    hashSet.Add(item);
                }
            }
            return(hashSet);
        }
        public IStorePropertyBag ConstructThreadAggregatedProperties(IConversationTree threadTree)
        {
            PropertyAggregationContext context = new PropertyAggregationContext(threadTree.StorePropertyBags.ToList <IStorePropertyBag>());

            return(ApplicationAggregatedProperty.Aggregate(context, this.propertiesToAggregate));
        }