Beispiel #1
0
        public void Edit()
        {
            int index, id;

            Console.Write("Введите id записи: ");
            if (int.TryParse(Console.ReadLine(), out id) && SearchFromId(id, out index))
            {
                Dictionary <string, Action> menu = new Dictionary <string, Action>();
                menu.Add("Фамилия", delegate { Records[index].SetLastName(); });
                menu.Add("Имя", delegate { Records[index].SetFirstName(); });
                menu.Add("Отчество", delegate { Records[index].SetMiddName(); });
                menu.Add("Дата рождения", delegate { Records[index].SetBornDate(); });
                menu.Add("Страна", delegate { Records[index].SetCountry(); });
                menu.Add("Телефон", delegate { Records[index].SetPhone(); });
                menu.Add("Должность", delegate { Records[index].SetPost(); });
                menu.Add("Организация", delegate { Records[index].SetClub(); });
                menu.Add("Прочее", delegate { Records[index].SetOther(); });
                Action header = delegate { Console.WriteLine(Records[index].ShowInfo(Record.ShowType.Canvas)); };
                GenericMenu(menu, header);
            }
            else
            {
                Console.Clear();
                ShowAs.Error("Id не найден.\n");
            }
        }
Beispiel #2
0
 public void SetPhone()
 {
     do
     {
         this.Phone = SetStrParam("телефон", true);
         if (string.IsNullOrEmpty(this.Phone))
         {
             ShowAs.Error("Некорректно введены данные.\nПовторите попытку.\n");
         }
     } while (string.IsNullOrEmpty(this.Phone));
 }
Beispiel #3
0
        private static int SetIntParam(string name = "параметр", int min = 0, int max = 0)
        {
            int result;

            do
            {
                Console.Write("Введите {0}: ", name);
                if (!int.TryParse(Console.ReadLine(), out result) || result < min || result > max)
                {
                    ShowAs.Error("Некорректно введены данные.\nПовторите попытку.\n");
                }
                else
                {
                    return(result);
                }
            } while (true);
        }
Beispiel #4
0
 private static string SetStrParam(string name = "параметр", bool IsImprove = false)
 {
     do
     {
         Console.Write("Введите {0}: ", name);
         string result = Console.ReadLine();
         Console.Clear();
         if (string.IsNullOrEmpty(result) && IsImprove)
         {
             ShowAs.Error("Некорректно введены данные.\nПовторите попытку.\n");
         }
         else
         {
             return(result);
         }
     } while (true);
 }
Beispiel #5
0
        public void ShowCanvas()
        {
            int index, id;

            Console.Write("Введите id записи: ");
            if (int.TryParse(Console.ReadLine(), out id) && SearchFromId(id, out index))
            {
                Dictionary <string, Action> menu = new Dictionary <string, Action>();
                // генерируем таблицу с записями
                Action header = delegate { Console.WriteLine(Records[index].ShowInfo(Record.ShowType.Canvas)); };
                GenericMenu(menu, header);
            }
            else
            {
                Console.Clear();
                ShowAs.Error("Id не найден.\n");
            }
        }
Beispiel #6
0
        public void Delete()
        {
            int index, id, symbol;

            Console.Write("Введите id записи: ");
            if (int.TryParse(Console.ReadLine(), out id) && SearchFromId(id, out index))
            {
                Console.WriteLine("Вы уверены, что хотите удалить запись {0}?\n 1 | Да.\n 2 | Нет.\n", Records[index].Id);
                if (int.TryParse(Console.ReadLine(), out symbol) && symbol == 1)
                {
                    Records.RemoveAt(index);
                }
                Console.Clear();
            }
            else
            {
                Console.Clear();
                ShowAs.Error("Id не найден.\n");
            }
        }
Beispiel #7
0
        private void GenericMenu(Dictionary <string, Action> menuPuncts, Action header)
        {
            Dictionary <string, Action> .Enumerator it;
            int  index;
            bool IsDigit;

            do             // работает до тех пора, пока пользователь не выберет существующий пункт меню
            {
                index = 0; // номер пункта меню (с 1 по N)
                header();
                Console.WriteLine();
                foreach (var item in menuPuncts) // выводим названия пуктов меню, которые являются ключами словаря menuPuncts
                {
                    Console.WriteLine($" {++index} | {item.Key}");
                }
                Console.WriteLine($" 0 | Выход");
                ShowAs.Improve("\n>> ");
                IsDigit = int.TryParse(Console.ReadLine(), out index); // считываем номер меню с клавиатуры
                Console.Clear();
                if (IsDigit && index <= menuPuncts.Count)
                {
                    if (index == 0)
                    {
                        return;
                    }
                    it = menuPuncts.GetEnumerator();
                    for (int i = 0; i < index; i++) // перемещаем энумератор на нужную позицию пункта меню
                    {
                        it.MoveNext();
                    }
                    it.Current.Value(); // вызываем метод для этого пункта
                }
                else
                {
                    ShowAs.Error("Команда не найдена!\nПопробуйте еще раз.\n");
                }
            } while (true);
        }