private void Apply_Click(object sender, RoutedEventArgs e) { // Проверка заполнения полей if (BalanceProducts.SelectedIndex == -1 || PartnersBox.SelectedIndex == -1 || this.AmountBox.Text == "") { this.Warning.Visibility = Visibility.Visible; return; } int amount = Int32.Parse(this.AmountBox.Text); var product = BalanceProducts.SelectedItem.ToString(); var supplier = PartnersBox.SelectedItem.ToString(); BalanceChange import = new BalanceChange(product, supplier, amount, this.ChangeType); // обновляем остаток на складе при наличии места if (!ChangeBalance(import)) { return; } if (this.ImportId != -1) { EditNode(import); } else { AddNode(import); } this.DialogResult = true; }
private void EditNode(BalanceChange import) { var xmlDoc = XDocument.Load(this.filename); // Редактируем выбранный элемент XElement node = xmlDoc.Root.Elements().ElementAt(this.ImportId); node.Element("Наименование").Value = import.Product; node.Element("Поставщик").Value = import.Supplier; node.Element("Клиент").Value = import.Supplier; node.Element("Кол-во").Value = import.Amount.ToString(); xmlDoc.Save(this.filename); }
private bool ChangeBalance(BalanceChange change) { var xmlDoc = XDocument.Load("Data/BalanceList.xml"); // Редактируем выбранный элемент foreach (var node in xmlDoc.Root.Elements()) { if (node.Element("Наименование").Value == change.Product) { int balanceAmount = Int32.Parse(node.Element("Кол-во").Value); int balanceCapacity = Int32.Parse(node.Element("Вместимость").Value); // При загрузке if (change.Type == 1) { if (change.Amount + balanceAmount <= balanceCapacity) { node.Element("Кол-во").Value = (change.Amount + Int32.Parse(node.Element("Кол-во").Value)).ToString(); } else { MessageBox.Show("Лимит склада по товару превышен"); return(false); } } // При отгрузке else { if (balanceAmount - change.Amount >= 0) { node.Element("Кол-во").Value = (Int32.Parse(node.Element("Кол-во").Value) - change.Amount).ToString(); } else { MessageBox.Show("На складе недостаточно товара"); return(false); } } } } xmlDoc.Save("Data/BalanceList.xml"); return(true); }
private void AddNode(BalanceChange import) { XmlDocument xDoc = new XmlDocument(); xDoc.Load(this.filename); XmlElement xRoot = xDoc.DocumentElement; // создаем новый элемент XmlElement prodElem = xDoc.CreateElement("Товар"); XmlElement nameElem = xDoc.CreateElement("Наименование"); XmlElement supplierElem; if (import.Type == 1) { supplierElem = xDoc.CreateElement("Поставщик"); } else { supplierElem = xDoc.CreateElement("Клиент"); } XmlElement amountElem = xDoc.CreateElement("Кол-во"); // создаем текстовые значения для элементов XmlText nameText = xDoc.CreateTextNode(import.Product); XmlText supplierText = xDoc.CreateTextNode(import.Supplier); XmlText amountText = xDoc.CreateTextNode(import.Amount.ToString()); //добавляем текст в узлы nameElem.AppendChild(nameText); supplierElem.AppendChild(supplierText); amountElem.AppendChild(amountText); // добавляем дочерние узлы prodElem.AppendChild(nameElem); prodElem.AppendChild(supplierElem); prodElem.AppendChild(amountElem); xRoot.AppendChild(prodElem); xDoc.Save(this.filename); }