// Update Persistant order information public static void ModifyOrder(DiscStatus discOrder) { if (System.IO.File.Exists(GlobalVar.OrderTrackingFile)) { XmlDocument document = new XmlDocument(); try { document.Load(GlobalVar.OrderTrackingFile); XmlElement Order; Order = (XmlElement)document.SelectSingleNode("//PendingOrders/orders/order[@OrderId=" + "\'" + discOrder.OrderID + "\']"); // if Order is not found do not attempt to update if (Order != null) { Order.SetAttribute("Status", discOrder.State); Order.SetAttribute("PercentComplete", discOrder.PercentCompleted); document.Save(GlobalVar.OrderTrackingFile); } } catch { ////MessageBox.Show("Error reading persistant order information" + "\n" + ioEx.Message); } } }
//// Read production order file public static string GetProductionOrderFile(DiscStatus orderInfo) { string productionXml = null; // Get produciton order File Name XmlDocument document = new XmlDocument(); document.Load(GlobalVar.OrderTrackingFile); XmlElement order; order = (XmlElement)document.SelectSingleNode("//PendingOrders/orders/order[@OrderId=" + "\'" + orderInfo.OrderID + "\']"); if (order != null) { string pfilename = order.GetAttribute("ProductionOrderPath"); // Read production order file into string try { System.IO.StreamReader pFile = new System.IO.StreamReader(pfilename); productionXml = pFile.ReadToEnd(); pFile.Close(); } catch { return(string.Empty); } } return(productionXml); }
// Remove Persistant order information public static void RemoveOrder(DiscStatus discOrder) { // Make sure file exists before attempting to remove orders if (System.IO.File.Exists(GlobalVar.OrderTrackingFile)) { XmlDocument document = new XmlDocument(); try { document.Load(GlobalVar.OrderTrackingFile); XmlNode completedOrder; completedOrder = document.SelectSingleNode("//PendingOrders/orders/order[@OrderId=" + "\'" + discOrder.OrderID + "\']"); // if Order is not found do not attempt to update if (completedOrder != null) { XmlNode parentNode; parentNode = completedOrder.ParentNode; parentNode.RemoveChild(completedOrder); document.Save(GlobalVar.OrderTrackingFile); } } catch { ////MessageBox.Show("Error reading persistant order information" + "\n" + ioEx.Message); } } }
// Scan order file for recoverable orders public static ArrayList GetRecoverableStatus() { // Make sure file exists before attempting scan if (System.IO.File.Exists(GlobalVar.OrderTrackingFile)) { XmlDocument document = new XmlDocument(); document.Load(GlobalVar.OrderTrackingFile); XmlNodeList Order; Order = (XmlNodeList)document.SelectNodes("//PendingOrders/orders/*"); ArrayList recoverableStatuses = new ArrayList(); foreach (XmlNode node in Order) { DiscStatus status; status = new DiscStatus(); string durable = node.Attributes.GetNamedItem("Durable").Value; if (durable == "true") { status.OrderID = node.Attributes.GetNamedItem("OrderId").Value; status.ClientID = node.Attributes.GetNamedItem("ClientId").Value; status.Status = node.Attributes.GetNamedItem("Status").Value; recoverableStatuses.Add(status); status = null; } else { // order is not durable it cannot be recovered status.OrderID = node.Attributes.GetNamedItem("OrderId").Value; status.ClientID = node.Attributes.GetNamedItem("ClientId").Value; status.Status = node.Attributes.GetNamedItem("Status").Value; OrderTracking.DeleteProductionFile(status.OrderID); OrderTracking.RemoveOrder(status); } } if (recoverableStatuses.Count == 0) { return(null); } else { return(recoverableStatuses); } } else { return(null); } }