/// <summary> /// Reduces this scores by specified source. /// </summary> /// <param name="source">The source.</param> public void Reduce(instanceCountCollection <T> source) { foreach (var pair in source.items) { Reduce(pair.Key, pair.Value); } }
// public DataTable buildDataTable() /// <summary> /// Adds all instances and their existing score /// </summary> /// <param name="source">The source.</param> public virtual void AddInstanceRange(instanceCountCollection <T> source) { foreach (var pair in source.items) { AddInstance(pair.Key, pair.Value); } }
public instanceCountCollection <TValue> resolveQuery(string input) { var queries = GetKeys(); minQL = queries.Min(x => x.ToString().Length); instanceCountCollection <TValue> output = new instanceCountCollection <TValue>(); foreach (Regex rg in GetKeys()) { if (rg.IsMatch(input)) { int points = 1 + ((rg.ToString().Length - minQL) * 2); GetByKey(rg).ForEach(x => output.AddInstance(x, points)); } } return(output); }
//private Int32 _maxQL; ///// <summary> ///// ///// </summary> //public Int32 maxQL //{ // get { return _maxQL; } // set { _maxQL = value; } //} public instanceCountCollection <TValue> resolveQuerySet(IEnumerable <string> inputs) { var queries = GetKeys(); minQL = queries.Min(x => x.ToString().Length); //maxQL = queries.Max(x => x.ToString().Length); instanceCountCollection <TValue> output = new instanceCountCollection <TValue>(); foreach (string input in inputs) { foreach (Regex rg in GetKeys()) { if (rg.IsMatch(input)) { int points = (rg.ToString().Length - minQL) * 2; GetByKey(rg).ForEach(x => output.AddInstance(x, points)); } } } return(output); }
/// <summary> /// Prefered way of piping Copies complete score list to <see cref="self"/> and automatically lock this source /// </summary> /// <param name="source">The source: spider record model element that sent these count results</param> /// <param name="sourceID">The source (origin of these statistics) identifier.</param> public bool Add(instanceCountCollection <T> source, string sourceID) { if (lockedSourceIds.Contains(sourceID)) { return(false); } if (!propagationPaused) { LockSource(sourceID); } self.AddInstanceRange(source); if (!propagationPaused) { foreach (T it in source.Keys) { sendUpstream(it, sourceID, source[it]); } } return(true); }