public void UpdateItem(Product item) { // ReSharper disable PossibleNullReferenceException if (currentItemNode.Attributes["ItemNum"].Value != item.ItemNumber) { GetItem(item.ItemNumber); } try { currentItemNode.Attributes["ItemNum"].Value = item.ItemNumber; currentItemNode.Attributes["Description"].Value = item.Description; currentItemNode.Attributes["L"].Value = item.L.ToString(); currentItemNode.Attributes["W"].Value = item.W.ToString(); currentItemNode.Attributes["H"].Value = item.H.ToString(); currentItemNode.Attributes["SinglePack"].Value = item.SinglePack.ToString(); currentItemNode.Attributes["SignReq"].Value = item.SignatureRequired.ToString(); currentItemNode.Attributes["USMail"].Value = item.ShipUSMail.ToString(); currentItemNode.Attributes["PackingException"].Value = item.PackingException.ToString(); var weightNode = currentItemNode.SelectSingleNode("Weight"); weightNode.Attributes["WeightForOne"].Value = item.Weight.ToString("0.00"); weightNode.Attributes[""].Value = item.PackagingWeight.ToString(); var newSubItemsNode = CreateNode(XmlNodeType.Element, "SubItems", null); if (item.IsKit) { foreach (var itemNumber in item.SubItems) { var subItem = CreateNode(XmlNodeType.Element, "SubItem", null); subItem.InnerText = itemNumber; newSubItemsNode.AppendChild(subItem); } } var oldSubItemsNode = currentItemNode.SelectSingleNode("SubItems"); // ReSharper disable AssignNullToNotNullAttribute currentItemNode.ReplaceChild(newSubItemsNode, oldSubItemsNode); // ReSharper restore AssignNullToNotNullAttribute Logger.Log(String.Format("Item '{0}' has been updated.", item.ItemNumber)); Logger.Log(String.Format("\tUpdated values - \n{0}", item.PropertyList())); Save(xmlFileName); // ReSharper restore PossibleNullReferenceException } catch (Exception ex) { throw new ItemMaintenanceException("An unexpected exception occurred during UpdateItem.", ex); } }
public void LoadItemList(string pathFileName) { xmlFileName = pathFileName; try { itemNos = new List <string>(); Load(pathFileName); root = DocumentElement; if (root == null) { throw new Exception("A problem occurred while loading the item data; no root element was found."); } if (!root.HasChildNodes) { throw new Exception( "A problem occurred while loading the item data; root element contained no child nodes."); } foreach (XmlNode node in root.ChildNodes) { // ReSharper disable PossibleNullReferenceException itemNos.Add(node.Attributes["ItemNum"].Value); // ReSharper restore PossibleNullReferenceException } currentItemNode = root.FirstChild; ListLoaded = true; Logger.Log("Item list successfully loaded."); } catch (Exception ex) { throw new ItemDataLoadException("An exception occurred while loading the item data.", ex); } }
public void AddItem(Product objItem) { if (Exists(objItem.ItemNumber)) { throw new DuplicateItemException(objItem.ItemNumber); } try { var newItem = CreateItemNode(objItem); matchValue = objItem.ItemNumber; var i = GetLastIndex(); if (i == -1) { root.AppendChild(newItem); } else { var itemNum = itemNos[i]; currentItemNode = root.SelectSingleNode("//Item[@ItemNum='" + itemNum + "']"); root.InsertAfter(newItem, currentItemNode); } itemNos.Insert(i + 1, objItem.ItemNumber); Save(xmlFileName); Logger.Log(String.Format("Item '{0}' has been added to the list.", objItem.ItemNumber)); Logger.Log(String.Format("\tValues -\n{0}", objItem.PropertyList())); currentItemNode = root.SelectSingleNode("//Item[@ItemNum='" + objItem.ItemNumber + "']"); } catch (Exception ex) { throw new ItemMaintenanceException("Add item failed!", ex); } }
public void RemoveItem(string itemNumber) { matchValue = itemNumber; try { var tempNode = currentItemNode; currentItemNode = tempNode.Equals(root.LastChild) ? currentItemNode.PreviousSibling : currentItemNode.NextSibling; root.RemoveChild(tempNode); Save(xmlFileName); var i = itemNos.IndexOf(itemNumber); itemNos.RemoveAt(i); Logger.Log(String.Format("Item '{0}' has been deleted.", itemNumber)); } catch (Exception ex) { throw new ItemMaintenanceException("Unexpected exception occurred in RemoveItem.", ex); } }