Пример #1
0
 virtual public void Save(Stream writer)
 {
     if (State == TireDataSelectorState.Changed)
     {
         BinaryFormatter binaryFormatter = new BinaryFormatter();
         binaryFormatter.Serialize(writer, this);
         State = TireDataSelectorState.NotChanged;
     }
 }
Пример #2
0
        virtual public void ExtractData(int NumSearch)
        {
            var maxmin = new TireDataMaxmin();

            ExtractedData.Clear();
            NotExtractedData.Clear();

            int i = 0;

            foreach (var data in Target)
            {
                /*
                 * bool add = true;
                 * foreach (TireDataColumn column in Enum.GetValues(typeof(TireDataColumn)))
                 * {
                 *  if (column == TireDataColumn.NT) continue;
                 *
                 *
                 *
                 *  bool add_EvalNot = true;
                 *  bool add_EvalOrd = false;
                 *  if (Constrains[column].Count != 0)
                 *  {
                 *      foreach (var constrain in Constrains[column])
                 *      {
                 *          if(!constrain.Not)
                 *          {
                 *              add_EvalOrd = add_EvalOrd || constrain.Evaluate(data);
                 *          }
                 *          else
                 *          {
                 *              add_EvalNot = constrain.Evaluate(data);
                 *          }
                 *          if (!add_EvalNot) break;
                 *      }
                 *  }
                 *  else
                 *  {
                 *      add_EvalNot = true;
                 *      add_EvalOrd = true;
                 *  }
                 *  add = add && (add_EvalNot && add_EvalOrd);
                 *  if (!add) break;
                 * }
                 *
                 *
                 *
                 *
                 * if (add)
                 * {
                 *  ExtractedData.Add(data);
                 * }
                 * else
                 * {
                 *  NotExtractedData.Add(data);
                 * }
                 */
                if (NumSearch > 0 && i >= NumSearch)
                {
                    break;
                }
                ++i;
                bool add = true;
                foreach (TireDataColumn column in Enum.GetValues(typeof(TireDataColumn)))
                {
                    if (column == TireDataColumn.NT)
                    {
                        continue;
                    }
                    bool remove = false;
                    foreach (var constrain in Constrains[column])
                    {
                        if (!constrain.Not)
                        {
                            continue;
                        }
                        if (!constrain.Evaluate(data))
                        {
                            remove = true;
                            break;
                        }
                    }
                    if (remove == true)
                    {
                        add = false;
                        break;
                    }
                    if (!remove)
                    {
                        remove = true;
                        int counttemp = 0;

                        if (column == TireDataColumn.NT)
                        {
                            continue;
                        }
                        foreach (var constrain in Constrains[column])
                        {
                            if (constrain.Not)
                            {
                                continue;
                            }
                            ++counttemp;
                            if (constrain.Evaluate(data))
                            {
                                remove = false;
                                break;
                            }
                        }

                        if (counttemp == 0)
                        {
                            remove = false;
                        }
                    }
                    add = add && !remove;
                }


                if (add)
                {
                    ExtractedData.Add(data);
                }
                else
                {
                    NotExtractedData.Add(data);
                }
            }
            State = TireDataSelectorState.Changed;
            ExtractedDataMaxmin = StaticFunctions.GetLimitData(ExtractedData);
        }
Пример #3
0
 public void ConfirmStateChanged()
 {
     State = TireDataSelectorState.Changed;
 }