Guest User

Untitled

a guest
Dec 11th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.26 KB | None | 0 0
  1. // Image of the design with controls explained: https://imgur.com/a/vsjbWzi
  2. // XAML code for reference: https://pastebin.com/dBQS8Crv
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using System.Windows.Input;
  6. using System.Text.RegularExpressions;
  7. namespace Mario_Pizza_Application
  8. {
  9.     /// <summary>
  10.     /// Interaction logic for MainWindow.xaml
  11.     /// </summary>
  12.     public partial class MainWindow : Window
  13.     { // Global variables for the prices and items
  14.         double _prijsgerecht = 0;
  15.         int items = 0;
  16.         double _totalprice = 0;
  17.         public MainWindow()
  18.         {
  19.             InitializeComponent();
  20.            
  21.         }
  22.         private void ValidateInfo()
  23.         {
  24.             // Gets the postcode and name of the user
  25.             string postcode = tbPostcode.Text;
  26.             string name = tbName.Text;
  27.             if (!Regex.IsMatch(postcode, @"[0-9]{4} [A-Z]{2}"))
  28.             {
  29.                 MessageBox.Show("Vul een geldige postcode in!");
  30.                 return;
  31.             }
  32.             if (!Regex.IsMatch(postcode, @"[0-9]{4} [A-Z]{2}"))
  33.             {
  34.                 MessageBox.Show("Vul een geldige postcode in!");
  35.                 return;
  36.             }
  37.         }
  38.         private void SetPrice()
  39.         {
  40.             ComboBoxItem selectedMealCBI = (ComboBoxItem)cbPizzas.SelectedItem;
  41.             string selectedMeal = selectedMealCBI.Content.ToString();
  42.             // Price order: Hawaii 0, Margaritha 1, Peperoni 2, Funghi 3, Quattro 4, Calzone 5, Prosciutto 6, Diavola 7, Napoli 8, Tonno 9, Frute Di Mare 10
  43.             double[] prices = {10.00, 8.00, 9.00, 10.50, 10.00, 11.00, 10.50, 10.00, 11.00, 11.00, 10.50, 10.00, 12.00, 14.00 };
  44.             // Price order: Bolognese 0, Gorgonzola 1, Vongole 2, Pesto 3, Classico 4
  45.             double[] pricesPastas = { 8.00, 9.50, 12.50, 7.00, 11.00};
  46.             switch (selectedMeal)
  47.             { //Pizzagerechten + sets the price based on the radiobutton thats selected.
  48.                 case "Hawaii":
  49.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[0]; } else { _prijsgerecht = prices[0] * 0.7; };
  50.                     tbFormat.Visibility = Visibility.Visible;
  51.                     rb25cm.Visibility = Visibility.Visible;
  52.                     rb35cm.Visibility = Visibility.Visible;
  53.                     break;
  54.                 case "Margaritha":
  55.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[1]; } else { _prijsgerecht = prices[1] * 0.7; };
  56.                     tbFormat.Visibility = Visibility.Visible;
  57.                     rb25cm.Visibility = Visibility.Visible;
  58.                     rb35cm.Visibility = Visibility.Visible;
  59.                     break;
  60.                 case "Peperoni":
  61.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[2]; } else { _prijsgerecht = prices[2] * 0.7; };
  62.                     tbFormat.Visibility = Visibility.Visible;
  63.                     rb25cm.Visibility = Visibility.Visible;
  64.                     rb35cm.Visibility = Visibility.Visible;
  65.                     break;
  66.                 case "Funghi":
  67.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[3]; } else { _prijsgerecht = prices[3] * 0.7; };
  68.                     tbFormat.Visibility = Visibility.Visible;
  69.                     rb25cm.Visibility = Visibility.Visible;
  70.                     rb35cm.Visibility = Visibility.Visible;
  71.                     break;
  72.                 case "Quattro":
  73.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[4]; } else { _prijsgerecht = prices[4] * 0.7; };
  74.                     tbFormat.Visibility = Visibility.Visible;
  75.                     rb25cm.Visibility = Visibility.Visible;
  76.                     rb35cm.Visibility = Visibility.Visible;
  77.                     break;
  78.                 case "Calzone":
  79.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[5]; } else { _prijsgerecht = prices[5] * 0.7; };
  80.                     tbFormat.Visibility = Visibility.Visible;
  81.                     rb25cm.Visibility = Visibility.Visible;
  82.                     rb35cm.Visibility = Visibility.Visible;
  83.                     break;
  84.                 case "Prosciutto":
  85.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[6]; } else { _prijsgerecht = prices[6] * 0.7; };
  86.                     tbFormat.Visibility = Visibility.Visible;
  87.                     rb25cm.Visibility = Visibility.Visible;
  88.                     rb35cm.Visibility = Visibility.Visible;
  89.                     break;
  90.                 case "Diavola":
  91.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[7]; } else { _prijsgerecht = prices[7] * 0.7; };
  92.                     tbFormat.Visibility = Visibility.Visible;
  93.                     rb25cm.Visibility = Visibility.Visible;
  94.                     rb35cm.Visibility = Visibility.Visible;
  95.                     break;
  96.                 case "Napoli":
  97.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[8]; } else { _prijsgerecht = prices[8] * 0.7; };
  98.                     tbFormat.Visibility = Visibility.Visible;
  99.                     rb25cm.Visibility = Visibility.Visible;
  100.                     rb35cm.Visibility = Visibility.Visible;
  101.                     break;
  102.                 case "Tonno":
  103.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[9]; } else { _prijsgerecht = prices[9] * 0.7; };
  104.                     tbFormat.Visibility = Visibility.Visible;
  105.                     rb25cm.Visibility = Visibility.Visible;
  106.                     rb35cm.Visibility = Visibility.Visible;
  107.                     break;
  108.                 case "Frute Di Mare":
  109.                     if ((bool)rb35cm.IsChecked) { _prijsgerecht = prices[10]; } else { _prijsgerecht = prices[10] * 0.7; };
  110.                     tbFormat.Visibility = Visibility.Visible;
  111.                     rb25cm.Visibility = Visibility.Visible;
  112.                     rb35cm.Visibility = Visibility.Visible;
  113.                     break;
  114.                 // Pastagerechten, since pastas don't come in sizes of 25cm and 35cm, the visiblity of the format and sizes are hidden.
  115.                 case "Macaroni Bolognese":
  116.                     _prijsgerecht = pricesPastas[0];
  117.                     tbFormat.Visibility = Visibility.Hidden;
  118.                     rb25cm.Visibility = Visibility.Hidden;
  119.                     rb35cm.Visibility = Visibility.Hidden;
  120.                     break;
  121.                 case "Farfalle Gorgonzola":
  122.                     _prijsgerecht = pricesPastas[1];
  123.                     tbFormat.Visibility = Visibility.Hidden;
  124.                     rb25cm.Visibility = Visibility.Hidden;
  125.                     rb35cm.Visibility = Visibility.Hidden;
  126.                     break;
  127.                 case "Spaghetti Vongole":
  128.                     _prijsgerecht = pricesPastas[2];
  129.                     tbFormat.Visibility = Visibility.Hidden;
  130.                     rb25cm.Visibility = Visibility.Hidden;
  131.                     rb35cm.Visibility = Visibility.Hidden;
  132.                     break;
  133.                 case "Fusilli Pesto":
  134.                     _prijsgerecht = pricesPastas[3];
  135.                     tbFormat.Visibility = Visibility.Hidden;
  136.                     rb25cm.Visibility = Visibility.Hidden;
  137.                     rb35cm.Visibility = Visibility.Hidden;
  138.                     break;
  139.                 case "Lasagne Classico  ":
  140.                     _prijsgerecht = pricesPastas[4];
  141.                     tbFormat.Visibility = Visibility.Hidden;
  142.                     rb25cm.Visibility = Visibility.Hidden;
  143.                     rb35cm.Visibility = Visibility.Hidden;
  144.                     break;
  145.             }
  146.            
  147.         }
  148.         private void btnAdd_Click(object sender, RoutedEventArgs e)
  149.         {
  150.             ValidateInfo();
  151.             ComboBoxItem selectedMealCBI = (ComboBoxItem)cbPizzas.SelectedItem; // Gets the selected combo box item
  152.             string selectedMeal = selectedMealCBI.Content.ToString(); // Converts it to a string
  153.             string order = selectedMeal + ';' + "Totaal;" + "$" + (_prijsgerecht * int.Parse(tbAmount.Text)).ToString("0.00");
  154.             lbItems.Items.Add(order); // Gets the selected pizza/pasta, the amount of items and the cost per pizza/pasta.
  155.             _totalprice = double.Parse(tbTotalPizza.Text) + _totalprice; // Gets the "Prijs:" price and then adds it to _totalprice (0)
  156.             tbTotalPrice.Text = _totalprice.ToString(); // Sets the price to the textblock
  157.             ValidateInfo();
  158.  
  159.         }
  160.  
  161.         private void lbItems_MouseDoubleClick(object sender, MouseButtonEventArgs e)
  162.         {
  163.             // Removes the selected item when its double clicked.
  164.             ComboBoxItem selectedMealCBI = (ComboBoxItem)cbPizzas.SelectedItem; // Gets the selected combo box item
  165.             string selectedMeal = selectedMealCBI.Content.ToString(); // Converts it to a string
  166.             lbItems.Items.RemoveAt(lbItems.SelectedIndex);
  167.             double totalPriceLBI = _prijsgerecht * int.Parse(tbAmount.Text);
  168.             string order = selectedMeal + ';' + "Totaal;" + "$" + totalPriceLBI.ToString("0.00");
  169.             string[] splitOrder = order.Split('$');
  170.             tbTotalPrice.Text = (_totalprice - double.Parse(splitOrder[1])).ToString();
  171.  
  172.         }
  173.  
  174.         private void cbPizzas_SelectionChanged(object sender, SelectionChangedEventArgs e)
  175.         {
  176.             SetPrice(); // Executes the Set Price function
  177.         }
  178.  
  179.         private void tbAmount_TextChanged(object sender, TextChangedEventArgs e)
  180.         {
  181.             try
  182.             {
  183.                 SetPrice();
  184.                 items = int.Parse(tbAmount.Text);
  185.                 tbTotalPizza.Text = (_prijsgerecht * items).ToString(); // When the amount is changed, the "Prijs:" textblock gets updated
  186.             }
  187.             catch
  188.             {
  189.                 MessageBox.Show("Vul een getal in!"); // When the input is invalid (e.g when its empty) this message appears
  190.             }
  191.         }
  192.  
  193.         private void rb25cm_Checked(object sender, RoutedEventArgs e)
  194.         {
  195.             SetPrice(); // When the 25cm button is checked, this code gets executed
  196.         }
  197.  
  198.         private void rb35cm_Checked(object sender, RoutedEventArgs e)
  199.         {
  200.             SetPrice(); // When the 35cm button is checked, this code gets executed
  201.         }
  202.     }
  203. }
Add Comment
Please, Sign In to add comment