private void PopulateHistory() { //HistoryListbox.Items.AddRange(Connection.OrderHistoryList(Viewer.Email).ToArray()); //Setup the form items now that they're ready and we have the data. HistoryTree.Nodes.Clear(); List <string> history = Connection.OrderHistoryList(Viewer.Email); if (history.Count > 0) { List <string> history_status = new List <string>(); foreach (string id in history) { List <string[]> orderItems = Connection.OrderFromOrderHistory(id); List <string> orderstatus = Connection.OrderStatusSummary(id); history_status.Add(orderstatus[3]); Order incoming = new Order(orderstatus[3], orderstatus[1], orderstatus[2]); foreach (string[] order in orderItems) { Menu.MenuItem result; switch (order[1]) { case "Ice Cream Scoop": result = new IceCreamScoop(order[1], order[2], order[4], int.Parse(order[5]), Connection.GetItemCost(order[1])); break; case "Sundae": result = new Sundae(order[2], order[3], true, true, Connection.GetItemCost(order[1])); break; case "Milkshake": result = new Milkshake(order[9], true, true, Connection.GetItemCost(order[1]), order[2]); break; case "Side Item": result = new SideItem(order[10], Connection.GetSideItemCost(order[10])); break; default: //should additional error checking be done here??? result = null; break; } if (!result.Equals(null)) { OrderItem add = new OrderItem(result, int.Parse(order[8])); incoming.AddItem(add); } } TreeNode top = HistoryTree.Nodes.Add(incoming.ToString()); foreach (OrderItem item in incoming.shoppingCart) { top.Nodes.Add(item.ToString()); } } } else { HistoryTree.Nodes.Add("No orders have been placed."); } }