ZazoTazo

Lab 12 Main

Nov 21st, 2020
778
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //menu of employees with sorting types and orders (using delegate)
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace Project_2
  9. {
  10.     class Program
  11.     {
  12.         private static int index = 0;
  13.         static List<Employee> employees = new List<Employee>();
  14.         //public static ArrayList employees = new ArrayList();
  15.         static EmployeeSort employeeSort = new EmployeeSort();
  16.         static EmployeeSortReverse employeeSortReverse = new EmployeeSortReverse();
  17.         public delegate void SortType();
  18.         public static SortType sortType;
  19.         static void Main(string[] args)
  20.         {
  21.             //Employee[] arr = new Employee[]
  22.             //{
  23.             //    new Employee{ID = 1, Salary = 50 },
  24.             //    new Employee{ID = 2, Salary = 10 },
  25.             //    new Employee{ID = 3, Salary = 30}
  26.             //};
  27.             //int result = arr[1].CompareTo(arr[2]);
  28.             //Array.Sort(arr);
  29.  
  30.             List<string> menuItems = new List<string>() { "New", "Display", "Sort", "Exit" };
  31.  
  32.             Console.CursorVisible = false;
  33.  
  34.             while (true)
  35.             {
  36.                 string selectedMenuItem = drawMenu(menuItems);
  37.                 if (selectedMenuItem == "New")
  38.                 {
  39.                     Console.Clear();
  40.                     newEmployee();
  41.                 }
  42.                 else if (selectedMenuItem == "Display")
  43.                 {
  44.                     Console.Clear();
  45.                     displayEmployee();
  46.                 }
  47.                 else if (selectedMenuItem == "Sort")
  48.                 {
  49.                     Console.Clear();
  50.                     sortType = new SortType(sortEmployees);
  51.                     sortType.Invoke();
  52.                 }
  53.                 else if (selectedMenuItem == "Exit")
  54.                 {
  55.                     Environment.Exit(0);
  56.                 }
  57.             }
  58.         }
  59.  
  60.         private static string drawMenu(List<string> items)
  61.         {
  62.             for (int i = 0; i < items.Count; i++)
  63.             {
  64.                 if (i == index)
  65.                 {
  66.                     Console.BackgroundColor = ConsoleColor.Gray;
  67.                     Console.ForegroundColor = ConsoleColor.Black;
  68.                     Console.WriteLine(items[i]);
  69.                 }
  70.                 else
  71.                 {
  72.                     Console.WriteLine(items[i]);
  73.                 }
  74.                 Console.ResetColor();
  75.             }
  76.  
  77.             ConsoleKeyInfo ckey = Console.ReadKey();
  78.  
  79.             if (ckey.Key == ConsoleKey.DownArrow)
  80.             {
  81.                 if (index == items.Count - 1)
  82.                 {
  83.                     //index = 0;
  84.                 }
  85.                 else
  86.                 {
  87.                     index++;
  88.                 }
  89.             }
  90.             else if (ckey.Key == ConsoleKey.UpArrow)
  91.             {
  92.                 if (index <= 0)
  93.                 {
  94.                     //index = menuItems.count - 1;
  95.                 }
  96.                 else
  97.                 {
  98.                     index--;
  99.                 }
  100.             }
  101.             else if (ckey.Key == ConsoleKey.Enter)
  102.             {
  103.                 return items[index];
  104.             }
  105.             else
  106.             {
  107.                 return "";
  108.             }
  109.  
  110.             Console.Clear();
  111.             return "";
  112.         }
  113.  
  114.         static void newEmployee()
  115.         {
  116.             string name;
  117.             int id, salary;
  118.             Console.WriteLine("Enter employee information.");
  119.             Console.Write("ID: "); id = int.Parse(Console.ReadLine());
  120.             Console.Write("Name: "); name = Console.ReadLine();
  121.             Console.Write("Salary: "); salary = int.Parse(Console.ReadLine());
  122.  
  123.             Employee e = new Employee(id, name, salary);
  124.             employees.Add(e);
  125.         }
  126.  
  127.         static void sortEmployees()
  128.         {
  129.             Console.WriteLine("Choose your sorting order:\n1. Ascending\n2. Descending");
  130.             int orderChoice = int.Parse(Console.ReadLine());
  131.             switch (orderChoice)
  132.             {
  133.                 case 1:
  134.                     Console.WriteLine("Choose sorting type:\n1. ID\n2. Name\n3. Salary");
  135.                     int choice1 = int.Parse(Console.ReadLine());
  136.                     switch (choice1)
  137.                     {
  138.                         case 1:
  139.                             employeeSort.sortChoice = EmployeeSort.sortBy.ID;
  140.                             break;
  141.                         case 2:
  142.                             employeeSort.sortChoice = EmployeeSort.sortBy.name;
  143.                             break;
  144.                         case 3:
  145.                             employeeSort.sortChoice = EmployeeSort.sortBy.salary;
  146.                             break;
  147.                         default:
  148.                             Console.WriteLine("Error, invalid choice");
  149.                             break;
  150.                     }
  151.                     employees.Sort(employeeSort);
  152.                     break;
  153.                 case 2:
  154.                     Console.WriteLine("Choose sorting type:\n1. ID\n2. Name\n3. Salary");
  155.                     int choice2 = int.Parse(Console.ReadLine());
  156.                     switch (choice2)
  157.                     {
  158.                         case 1:
  159.                             employeeSortReverse.sortChoice = EmployeeSortReverse.sortBy.ID;
  160.                             break;
  161.                         case 2:
  162.                             employeeSortReverse.sortChoice = EmployeeSortReverse.sortBy.name;
  163.                             break;
  164.                         case 3:
  165.                             employeeSortReverse.sortChoice = EmployeeSortReverse.sortBy.salary;
  166.                             break;
  167.                         default:
  168.                             Console.WriteLine("Error, invalid choice");
  169.                             break;
  170.                     }
  171.                     employees.Sort(employeeSortReverse);
  172.                     break;
  173.             }
  174.         }
  175.  
  176.         static void displayEmployee()
  177.         {
  178.             foreach (var employee in employees)
  179.             {
  180.                 Console.WriteLine("Employee ID: {0}\nEmployee Name: {1}\nEmployee Salary: {2}\n", employee.ID, employee.name, employee.salary);
  181.             }
  182.             //for (int i = 0; i < employees.Count; i++)
  183.             //{
  184.             //    Console.WriteLine("Employee ID: {0}\nEmployee Name: {1}\nEmployee Salary: {2}\n", ((Employee)employees[i]).ID, ((Employee)employees[i]).name, ((Employee)employees[i]).salary);
  185.             //}
  186.         }
  187.     }
  188. }
  189.  
RAW Paste Data