예제 #1
0
 public Filters()
 {
     AllSingleFilters = new SortedList <string, OneFilter>();
     AllGroupFilters  = new SortedList <string, FilterGroup>();
     List             = new SortedList <uint, SortedList <uint, FilterGroup> >();
     foreach (KeyValuePair <uint, SortedList <uint, FilterGroup> > pair in SaveEquip.Filters_From_File)
     {
         List.Add(pair.Key, new SortedList <uint, FilterGroup>());
         foreach (KeyValuePair <uint, FilterGroup> pair2 in pair.Value)
         {
             FilterGroup accountgroup = new FilterGroup(pair2.Value.Name, pair2.Value.ID, pair2.Value.Filter_ID, pair2.Value.CurValues);
             List[pair.Key].Add(pair2.Key, accountgroup);
             AllGroupFilters.Add(accountgroup.StringID, accountgroup);
             foreach (OneFilter filter in pair2.Value.Cur_Filters.Values)
             {
                 OneFilter accountfilter = new OneFilter(filter.Name, filter.ID, accountgroup);
                 accountgroup.Cur_Filters.Add(accountfilter.ID, accountfilter);
                 AllSingleFilters.Add(accountfilter.StringID, accountfilter);
             }
         }
     }
     Types_Filters     = List[1];
     Locations_Filters = List[2];
     Makers_Filters    = List[3];
 }
예제 #2
0
        /// <summary>  проверяет, такое же значение параметра или нет </summary>
        public bool IsValueEqual(Values type, string value)
        {
            if (this.Type != type)
            {
                return(false);
            }
            switch (Type)
            {
            case Values.Location:
            case Values.Maker:
            case Values.Type:
                OneFilter filter = SaveEquip.All_Filters[value];
                if (Filter.StringID == filter.StringID)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }

            default:
                if (this.value == value)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
예제 #3
0
        /// <summary> Добавляет новый фильтр в массив </summary>
        public void AddNewFilter(OneFilter basefilter)
        {
            FilterGroup group  = AllGroupFilters[basefilter.Parent.StringID];
            OneFilter   filter = new OneFilter(basefilter.Name, basefilter.ID, group);

            group.Cur_Filters.Add(filter.ID, filter);
            AllSingleFilters.Add(filter.StringID, filter);
            filter.Selected = group.Selected;
        }
예제 #4
0
        /// <summary> Метод проверяет возможность изменения параметра и меняет его </summary>
        public string TryCorrectParameter(int pos, DateTime date, string val)
        {
            Parameter par = Parameters[pos];

            if (par.time == date && par.value == val)
            {
                return("Нет изменений");
            }
            if (par.Type == Values.Location && Filters.CheckLocation(val) == false)
            {
                return("Недопустимое значение");
            }
            if (par.Type == Values.Type && Filters.CheckType(val) == false)
            {
                return("Недопустимое значение");
            }
            if (par.Type == Values.Maker && Filters.CheckMaker(val) == false)
            {
                return("Недопустимое значение");
            }
            if (date != par.time)
            {
                foreach (Parameter p in Parameters)
                {
                    if (p == par)
                    {
                        continue;
                    }
                    if (p.Type == par.Type && p.time == date)
                    {
                        return("Для этой даты уже существует запись");
                    }
                }
            }
            par.time = date;
            if (par.Type == Values.Location || par.Type == Values.Type || par.Type == Values.Maker)
            {
                OneFilter filter = SaveEquip.All_Filters[val];
                par.SetFilter(filter);
            }
            else
            {
                par.value = val;
            }
            return("");
        }
예제 #5
0
        /// <summary> Метод проверяет, существует ли такой производитель</summary>
        public static bool CheckMaker(string val)
        {
            OneFilter result = null;

            //поиск фильтра
            if (SaveEquip.All_Filters.ContainsKey(val))
            {
                result = SaveEquip.All_Filters[val];
            }
            //проверка соответствия фильтра типу данных
            if (result != null && result.Parent.CurValues == Values.Maker)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #6
0
        public static Equipment LoadEquipmentsFromFile(List <string> source)
        {
            int curid = 0;

            try
            {
                curid = Int32.Parse(source[0]);
            }
            catch
            {
                throw new Exception("Ошибка при чтении №4");
            }
            try
            {
                Equipment equip = new Equipment();
                long      ID    = Int64.Parse(source[1]);
                equip.ID         = ID;
                equip.Parameters = new List <Parameter>();
                for (int i = 2; i < source.Count; i++)
                {
                    Parameter par = JsonConvert.DeserializeObject <Parameter>(source[i]);
                    par.Fill();
                    if (Program.Change_Base)
                    {
                        //ДЛЯ ПЕРЕСОХРАНЕНИЯ БАЗЫ
                        if (par.Type == Values.Type || par.Type == Values.Location || par.Type == Values.Maker)
                        {
                            OneFilter f = SaveEquip.All_Filters[par.value];
                            par.value = string.Format("{0}_{1}_{2}_{3}", f.Parent.Filter_ID, f.Parent.ID, f.ID, f.Name);
                        }
                    }
                    equip.Parameters.Add(par);
                }
                equip.GetCurrentParameters();
                return(equip);
            }
            catch
            {
                throw new Exception($"Ошибка при распозновании оборудования {curid} №5");
            }
        }
예제 #7
0
 public void SetFilter(OneFilter filter)
 {
     Filter = filter;
     SetTextValue();
 }