COMPortTerminal.MainForm.AccessForm C# (CSharp) Method

AccessForm() private method

private AccessForm ( string action, string formText, Color textColor ) : void
action string
formText string
textColor Color
return void
        private void AccessForm( string action, string formText, Color textColor )
        {
            switch ( action )
            {
                case "AppendToMonitorTextBox":

                    //  Append text to the rtbMonitor textbox using the color for received data.

                    //rtbMonitor.AppendText(formText);
                    str_rfid += formText;

                    if (str_rfid.Length > 13)
                    {
                        switch (mode)
                        {
                            //operational mode
                            case eMode.eOperational:
                                if (str_rfid.Contains("4B00DA17F573"))
                                {
                                   DisplayStatus("", textColor);
                                   Order new_item = new Order(Order.eSize.eSmall, quantity, orderID);
                                   order_list.Add(new_item);
                                  // OrderListBox.SelectedIndex = OrderListBox.Items.Count - 1;
                                   // rtbMonitor.AppendText(DSSmall.getQuantity() + "\t" + DSSmall.getSizeString()
                                                          //  + "\t\t" + new_item.getPrice() + "\n");
                                   // stack.Push(DSSmall);
                                }
                                else if (str_rfid.Contains("4800E50372DC"))
                                {
                                    DisplayStatus("", textColor);
                                    Order new_item = new Order(Order.eSize.eMedium, quantity, orderID);
                                    order_list.Add(new_item);
                                    //OrderListBox.SelectedIndex = OrderListBox.Items.Count -1;
                                    //rtbMonitor.AppendText(new_item.getQuantity() + "\t" + new_item.getSizeString()
                                   //                         + "\t" + new_item.getPrice() + "\n");
                                   // stack.Push(new_item);
                                }
                                else if (str_rfid.Contains("4B00DA60DB2A"))
                                {
                                    DisplayStatus("", textColor);
                                    Order new_item = new Order(Order.eSize.eLarge, quantity, orderID);
                                    order_list.Add(new_item);
                                   // OrderListBox.SelectedIndex = OrderListBox.Items.Count - 1;
                                    //probably don't need this line
                                    //rtbMonitor.AppendText(new_item.getQuantity() + "\t" + new_item.getSizeString()
                                    //                        + "\t\t" + new_item.getPrice() + "\n");
                                    //stack.Push(new_item);
                                }
                                else
                                {
                                    DisplayStatus("Invalid Card. Please scan again.\n" + str_rfid, textColor);

                                }

                                orderID++;
                                OrderListBox.DataSource = order_list.toStringList();
                                if (order_list.Count != 0)
                                {
                                    OrderListBox.SetSelected(0, false);
                                }
                                OrderListBox.Refresh();
                                break;

                            //cancel mode
                            case eMode.eCancel:
                                string card_of_interest = "";
                                int i = 0;
                                int del = order_list.Count-1;
                                foreach (Order n in order_list)
                                {
                                    if (OrderListBox.GetSelected(i))
                                    {
                                        switch (n.getSize())
                                        {
                                            case Order.eSize.eSmall:
                                                card_of_interest = "4B00DA17F573";
                                                break;
                                            case Order.eSize.eMedium:
                                                card_of_interest = "4800E50372DC";
                                                break;
                                            case Order.eSize.eLarge:
                                                card_of_interest = "4B00DA60DB2A";
                                                break;
                                            default:
                                                Console.WriteLine("ERROR: INVALID CARD");
                                                break;
                                        }

                                        if (str_rfid.Contains("4B00DA47EA3C")|| str_rfid.Contains(card_of_interest))
                                        {
                                            CancelButton.BackColor = Color.LightGray;
                                            mode = eMode.eOperational;
                                            if (quantity < n.getQuantity())
                                            {
                                                n.setQuantity(n.getQuantity() - quantity);
                                            }
                                            else
                                            {
                                                order_list.RemoveAt(del);
                                            }

                                            OrderListBox.DataSource = order_list.toStringList();
                                            OrderListBox.Refresh();
                                            if (order_list.Count != 0)
                                            {
                                                OrderListBox.SetSelected(0, false);
                                            }
                                            break;
                                        }
                                        else
                                        {
                                            DisplayStatus("Invalid Card. Please scan again.\n", textColor);
                                            return;
                                        }
                                    }
                                    i++;
                                    del--;
                                }
                                break;

                                case eMode.eCheckout:
                                    //disable all use
                                break;

                            default:
                                Console.WriteLine("INVALID MODE");
                                break;
                        }
                        //reset text
                        str_rfid = "";
                        txtQuantity.Clear();
                        quantity = 1;
                        sub_total = order_list.getTotalPrice();
                        bill_total = sub_total*1.13;
                        item_total = order_list.getTotalQuantity();
                        Console.WriteLine("TOTAL: " + bill_total);
                        Console.WriteLine("SUBTOTAL: " + sub_total);
                        Console.WriteLine("Total Item: " + item_total);
                        totalSum.Text = "Subtotal: $" + sub_total + "\n" + "Total:$" + bill_total.ToString("0.00") + "\n" + "Total # of Items: " + item_total;
                    }
                    // Return to the default color.
                    //rtbMonitor.SelectionColor = colorTransmit;

                    //  Trim the textbox's contents if needed.

                   /* if ( rtbMonitor.TextLength > maximumTextBoxLength )
                    {
                        TrimTextBoxContents();
                    }
                    */
                    break;

                case "DisplayStatus":

                    //  Add text to the rtbStatus textbox using the specified color.

                    DisplayStatus( formText, textColor );
                    break;

                case "DisplayCurrentSettings":

                    //  Display the current port settings in the ToolStripStatusLabel.

                    DisplayCurrentSettings();

                    break;

                default:

                    break;
            }
        }