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;
}
}