/// <summary> /// Updates this form according to the current CustomerServiceState. /// </summary> public void update() { CustomerServiceState state = csm.GetCurrentState(); switch (state) { case CustomerServiceState.Initial: MessageBox.Show("Return has begun."); break; case CustomerServiceState.InvalidID: MessageBox.Show(csm.Error); break; case CustomerServiceState.SuccessfulID: updateItems(); break; case CustomerServiceState.SuccessfulReturn: Receipt r = new Receipt(csm.GetCurrentSale()); r.Show(); updateItems(); break; default: break; } }
/// <summary> /// Used to return items /// </summary> public void ReturnItem() { CustomerServiceState state = _csm.GetCurrentState(); string[] returnItem = null; bool valid = false; int ID = 0; while (!valid) { Console.Write("Enter the Sales ID: "); valid = int.TryParse(Console.ReadLine(), out ID); } Sale currentSale; List <Item> items = null; while (state != CustomerServiceState.SuccessfulReturn) { switch (state) { case CustomerServiceState.Initial: _gsHan(ID); state = _csm.GetCurrentState(); break; case CustomerServiceState.InvalidID: Console.WriteLine("Invalid ID"); Console.Write("\nEnter the Sales ID: "); ID = Convert.ToInt32(Console.ReadLine()); state = _csm.GetCurrentState(); break; case CustomerServiceState.SuccessfulID: currentSale = _csm.GetCurrentSale(); items = currentSale.GetItems(); Console.Write("\nName\tQuantity\tPrice"); foreach (Item i in items) { Console.Write("\n{0}\t{1}\t\t{2}", i.Name, i.Quantity, i.Price.ToString("C")); } Console.Write("\nEnter the item and quantity to return seperated by a comma(,): "); returnItem = Console.ReadLine().Split(','); foreach (Item i in items) { if (i.Name.Equals(returnItem[0])) { int quantity = 0; int.TryParse(returnItem[1], out quantity); _riHan(returnItem[0], quantity); break; } } state = _csm.GetCurrentState(); break; default: break; } } Console.Write("\nName\tQuantity\tPrice"); foreach (Item i in items) { Console.Write("\n{0}\t{1}\t\t{2}", i.Name, i.Quantity, i.Price.ToString("C")); } Console.WriteLine("\nReturn successful.\n"); }