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(); }
//Модернизируем _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(); }