void HandlePopUpInput(PopUpMenu selForm)
 {
     var trigger = false;
     for (var i = 0; i < selForm.ListModifiers.Group.Count; i++)
     {
         var flag =
             selForm.ListModifiers.Group.ElementAt(i).Cells[0].Value.Equals(Device.Resources.Images[0x001B]);
         if (flag) trigger = true;
         int q;
         for (q = 0; q < _modifiers.Count; q++)
             if(_modifiers.ElementAt(q).Value.Id == (string)selForm.ListModifiers.Group.ElementAt(i).Cells[2].Value) break;
         _modifiers[_modifiers.ElementAt(q).Key] = new Modifier()
         {
             Select = flag,
             Name = _modifiers[_modifiers.ElementAt(q).Key].Name,
             Id = _modifiers[_modifiers.ElementAt(q).Key].Id,
             Required = _modifiers[_modifiers.ElementAt(q).Key].Required
         };
     }
     if(_e != null)
     _e.Item.TemplateName = trigger ?
         RecSets.MarkerOrder.POPUPORDERChecked.ToString() : RecSets.MarkerOrder.POPUPORDER.ToString();
     else
        _last.TemplateName = trigger ?
         RecSets.MarkerOrder.POPUPORDERChecked.ToString() : RecSets.MarkerOrder.POPUPORDER.ToString();
     //Удаляем из системы обработчики
     selForm.PopupCancelled -= new EventHandler(SelFormPopupCancelled);
     selForm.Hidden -= new EventHandler(SelFormHidden);
     selForm.Destroy();
 }
 private void ReloadPopUp(string tag)
 {
     if (_dg.PopUpBusy) return;
     _dg.PopUpBusy = true;
     //В tag может быть Guid или Id
     var modifiers = (IModifiers)_dg.CurrentOrder.FindModifiersTagGuid(tag);
     _modifiers = modifiers.GetModifiers();
     var dish = _dg.CurrentOrder.FindIdTagGuid(tag);
     var selForm = new PopUpMenu(_dg, _modifiers, dish.Id, _OkEnable);
     selForm.PopupCancelled += new EventHandler(SelFormPopupCancelled);
     selForm.PostbackComplete += new EventHandler(ShowCheckboxPostbackComplete);
     selForm.Show();
 }
        //Смотрим наличие PopUp выбора типа кола 0.33/0.5/1
        private void PopUpChildren(string tag)
        {
            //tag - id но оно может несоответствовать меню, так как в словарь засунули с новым ид
            //надо смотреть словарь и проверять соответствие клюсч-ид, если разные - возвращать ид меню
            _iD = tag; //Сохраняем ключ словаря
            tag = SeeDishNewNameId(tag, out FlagOld);
            //Получаем спмсок модификаторов из меню
            List<Modifikator> currentModifikators = GetModifikators(tag);
            //Смотрим Dish по iD
            currentModifikators = FlagOld ? GetXmlModifikators(tag, currentModifikators) : GetDishModifikators(_iD, currentModifikators);

            //todo модификаторов нет выходим. Это ошибочная ситуация
            if (!currentModifikators.Any())
            {
                FormMain.ConsolePrint("ошибка получения списка модификаторов." + tag.ToString());
                return;
            }

            var selForm = new PopUpMenu(DG.Device, currentModifikators);
            //На Cancel вешаем как и на OK. Cancel не имеет логики, в дальнейшем убрать
            selForm.PopupCancelled += new EventHandler(SelFormPopupCancelled);
            //selForm.Hidden += new EventHandler(SelFormHidden);
            selForm.PostbackComplete += new EventHandler(ShowCheckboxPostbackComplete);
            //selForm.Tag = group;
            selForm.Show();
        }
        //Модернизируем _order.Dish
        void HandlePopUpInput(PopUpMenu selForm)
        {
            //todo CLONE Тут не получим модификаторы по клону
            bool flagClone;
            var id = SeeDishNewNameId(_iD, out flagClone);
            //Смотрим по правильному Ид и для клона и для сингла
            var currentModifikators = GetModifikators(id);
            var pointElement = 0;
            if (!FlagOld) //блюдо новое и в Dish
            {
                //Берем по правильному iD
                var dish = _order.Dish[_iD];
                var count = 0;
                //Чистим старые модификаторы
                dish.Modifikators.Clear();
                //Заносим новые
                foreach (var p in selForm.Checks)
                {
                    if (p.Checked.ToString() == "CHECKED") //Проверяем наличие галочки
                        dish.Modifikators.Add(new Modifikator
                                              {
                                                  Name = currentModifikators.ElementAt(count).Name,
                                                  Id = currentModifikators.ElementAt(count).Id,
                                                  Check = true
                                              });

                    count++;
                }
                _order.Dish.Remove(_iD);
                _order.Dish.Add(_iD, dish);
            }
            else
            {   //Удаляем модификаторы - старые
                try
                {
                    pointElement = GetLineTag(_lineTag);
                    while (DG.OrderTable.Descendants("СтрокаЗаказа").ElementAt(pointElement + 1).Attributes("Модификатор").First().Value == "Да")
                    {
                        DG.OrderTable.Descendants("СтрокаЗаказа").ElementAt(pointElement + 1).Remove();
                    }
                }
                catch (Exception)
                {
                }
                //Заносим новые
                var count = 0;
                foreach (var p in selForm.Checks)
                {
                    if (p.Checked.ToString() == "CHECKED")
                    {
                        DG.OrderTable.Descendants("СтрокаЗаказа").ElementAt(pointElement).AddAfterSelf(new XElement("СтрокаЗаказа",
                                        new XAttribute("НомерСтроки", "99"), //Потом переименуем все
                                        new XAttribute("Товар", currentModifikators.ElementAt(count).Name),
                                        new XAttribute("Модификатор", "Да"),
                                        new XAttribute("ТоварИД", currentModifikators.ElementAt(count).Id)));
                    };
                    count++;
                }
            }
            //Удаляем из системы обработчики
            selForm.PopupCancelled -= new EventHandler(SelFormPopupCancelled);
            selForm.Hidden -= new EventHandler(SelFormHidden);
            selForm.Destroy();
        }