コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }