Advertisement
ranee

Untitled

Jan 29th, 2022
1,148
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace CSLight
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             bool exit = false;
  11.             int menuBar = 0;
  12.             List<string> menu = new List<string> { "1. Добавить досье.", "2. Вывести досье.", "3. Удалить досье.", "4. Выход." };
  13.             Dictionary<string, string> dossiers = new Dictionary<string, string>
  14.             {
  15.                 { "Иванов Иван Иванович",  "Директор" },
  16.                 { "Шевцов Глеб Егорыч",  "Коллектор" }
  17.             };
  18.             Console.CursorVisible = false;
  19.  
  20.             while (exit == false)
  21.             {
  22.                 DrawMenu(menuBar, menu);
  23.                 ChangeDirection(ref menuBar, menu, out string selectMenuItems);
  24.                 Console.Clear();
  25.                 switch (selectMenuItems)
  26.                 {
  27.                     case "1. Добавить досье.":
  28.                         string newWorker, positonWorker;
  29.                         DrawLabels("Ведите ФИО нового сотрудника:", 0, 0);
  30.                         newWorker = Console.ReadLine();
  31.                         DrawLabels("Ведите должность сотрудника:", 1, 0);
  32.                         positonWorker = Console.ReadLine();
  33.                         TryAdd(newWorker,positonWorker,dossiers);
  34.                         Console.Clear();
  35.                         break;
  36.                     case "2. Вывести досье.":
  37.                         DrawAllDossier(dossiers);
  38.                         Console.ReadKey();
  39.                         Console.Clear();
  40.                         break;
  41.                     case "3. Удалить досье.":
  42.                         DrawAllDossier(dossiers);
  43.                         DrawLabels("Ведите ФИО сотрудника для удаления:", 0, 40);
  44.                         string checkWorker = Console.ReadLine();
  45.                         if (dossiers.ContainsKey(checkWorker))
  46.                         {
  47.                             dossiers.Remove(checkWorker);
  48.                             Console.Clear();
  49.                         }
  50.                         else
  51.                         {
  52.                             DrawLabels($"Нет сотрудника с фио {checkWorker}", 1, 40);
  53.                         }
  54.                         break;
  55.                     case "4. Выход.":
  56.                         exit = true;
  57.                         break;
  58.                 }
  59.             }
  60.         }
  61.  
  62.         static void TryAdd(string key, string value, Dictionary<string, string> dossiers)
  63.         {
  64.             if(dossiers.ContainsKey(key))
  65.             {
  66.                 Console.WriteLine("Работник уже внесен.");
  67.                 Console.ReadKey();
  68.                 Console.Clear();
  69.             }
  70.             else
  71.             {
  72.                 dossiers.Add(key, value);
  73.             }
  74.         }
  75.  
  76.         static void DrawLabels(string text, int x = 0, int y = 30)
  77.         {
  78.             Console.SetCursorPosition(y, x);
  79.             Console.Write(text);
  80.         }
  81.  
  82.         static void DrawAllDossier(Dictionary<string, string> dossiers)
  83.         {
  84.             if (dossiers.Count == 0)
  85.             {
  86.                 DrawLabels("Нет досье в списке.");
  87.             }
  88.             else
  89.             {
  90.                 int i = 1;
  91.                 foreach (var dossier in dossiers)
  92.                 {
  93.                     DrawLabels($"{i} {dossier.Key} - {dossier.Value}", i - 1, 0);
  94.                     i++;
  95.                 }
  96.             }
  97.         }
  98.  
  99.         static void DrawMenu(int menuBar, List<string> menu)
  100.         {
  101.             Console.SetCursorPosition(0, 0);
  102.             for (int i = 0; i < menu.Count; i++)
  103.             {
  104.                 if (i == menuBar)
  105.                 {
  106.                     Console.BackgroundColor = ConsoleColor.Gray;
  107.                     Console.ForegroundColor = ConsoleColor.Black;
  108.                     Console.WriteLine(menu[i]);
  109.                 }
  110.                 else
  111.                 {
  112.                     Console.WriteLine(menu[i]);
  113.                 }
  114.                 Console.ResetColor();
  115.             }
  116.         }
  117.  
  118.         static string GetChoise(List<string> menu, int menuBar)
  119.         {
  120.             return menu[menuBar];
  121.         }
  122.  
  123.         static void ChangeDirection(ref int menuBar, List<string> menu, out string selectMenuItems)
  124.         {
  125.             selectMenuItems = "";
  126.             ConsoleKeyInfo key = Console.ReadKey();
  127.             switch (key.Key)
  128.             {
  129.                 case ConsoleKey.UpArrow:
  130.                     if (menuBar <= 0)
  131.                     {
  132.                         menuBar = menu.Count - 1;
  133.                         DrawMenu(menuBar, menu);
  134.                     }
  135.                     else
  136.                     {
  137.                         menuBar--;
  138.                         DrawMenu(menuBar, menu);
  139.                     }
  140.                     break;
  141.                 case ConsoleKey.DownArrow:
  142.                     if (menuBar == menu.Count - 1)
  143.                     {
  144.                         menuBar = 0;
  145.                         DrawMenu(menuBar, menu);
  146.                     }
  147.                     else
  148.                     {
  149.                         menuBar++;
  150.                         DrawMenu(menuBar, menu);
  151.                     }
  152.                     break;
  153.                 case ConsoleKey.Enter:
  154.                     {
  155.                         selectMenuItems = GetChoise(menu, menuBar);
  156.                     }
  157.                     break;
  158.             }
  159.         }
  160.     }
  161. }
  162.  
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement