/// <summary>
        /// Add factor to search criteria.
        /// </summary>
        /// <param name="factor">The factor.</param>
        public void Add(IFactor factor)
        {
            if (Factors.IsNull())
            {
                Factors = new FactorList();
            }

            Factors.Add(factor);
        }
 public void CountRoads(bool on)
 {
     if (on)
     {
         Roads.ForEach(r => Factors.Add(r));
     }
     else
     {
         Roads.ForEach(r => Factors.Remove(r));
     }
 }
 public void CountParcels(bool on)
 {
     if (on)
     {
         Parcels.ForEach(r => Factors.Add(r));
     }
     else
     {
         Parcels.ForEach(r => Factors.Remove(r));
     }
 }
 private void SetTurbulence()
 {
     Factors.Clear();
     foreach (var spot in CitySpots)
     {
         Factors.Add(spot);
     }
     foreach (var linear in CityLinears)
     {
         Factors.Add(linear);
     }
     foreach (var region in CityRegions)
     {
         Factors.Add(region);
     }
 }
示例#5
0
        public void Parse(Tokenizer t)
        {
            Operations.Add(FactorOperation.None);
            Factor parent = new Factor();

            Factors.Add(parent);
            parent.Parse(t);
            while (t.CurrentToken == EToken.TIMES || t.CurrentToken == EToken.SLASH)
            {
                Operations.Add(t.CurrentToken == EToken.TIMES ? FactorOperation.Multiplication : FactorOperation.Division);
                t.NextToken();
                Factor child = new Factor();
                Factors.Add(child);
                child.Parse(t);
            }
            // optimization
            Factors.TrimExcess();
            Operations.TrimExcess();
        }
 public void ToggleFactors(IEnumerable <IFactor> factors, bool on)
 {
     if (on)
     {
         foreach (var factor in factors)
         {
             if (!Factors.Contains(factor))
             {
                 Factors.Add(factor);
             }
         }
     }
     else
     {
         foreach (var factor in factors)
         {
             if (Factors.Contains(factor))
             {
                 Factors.Remove(factor);
             }
         }
     }
 }
示例#7
0
 /// <summary>
 /// Add a factor name/value pair to this factor
 /// </summary>
 /// <param name="factorName"></param>
 /// <param name="factorValue"></param>
 public void AddFactor(string factorName, string factorValue)
 {
     Factors.Add(new KeyValuePair <string, string>(factorName, factorValue));
 }
 public void AddFactor(IFactor factor)
 {
     Factors.Add(factor);
 }