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]; }
/// <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); } } }
/// <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; }
/// <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(""); }
/// <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); } }
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"); } }
public void SetFilter(OneFilter filter) { Filter = filter; SetTextValue(); }