static void Main(string[] args) { try { CreateProject createProject = new CreateProject(); createProject.RegisterHandler(Show_Message); createProject.LoadFromFile(projectPath); createProject.LoadBreakDownsFromFile(breaksPath); createProject.LoasAdminsFromFile(adminPath); start: Console.Clear(); User user = null; Project proj = null; Console.WriteLine("1 - Администратор\n2 - Пользователь\n3 - Зарегистрироваться"); Int32.TryParse(Console.ReadLine(), out int IsAdmin); switch (IsAdmin) { case 1: { if (!LoginAdmin(createProject)) { Console.WriteLine("Good Bye"); Thread.Sleep(3000); return; } AdminMenu(createProject); break; } case 2: { int countOfIncorrectChance = 3; UserMenu: Console.WriteLine("Введите логин"); string login = Console.ReadLine(); Console.WriteLine("Введите пароль"); string password = Console.ReadLine(); foreach (Project item in createProject.Projects) { foreach (User itemUser in item.Users) { if (itemUser.Login == login && itemUser.Password == password) { user = itemUser; proj = item; break; } } } if (user != null) { Console.WriteLine("Добро пожаловать"); Thread.Sleep(1000); Console.Clear(); UserMenu(proj, user, createProject); } else if (countOfIncorrectChance > 1) { Console.WriteLine("Ваши данные некорректны!"); countOfIncorrectChance--; Console.WriteLine("Осталось попыток : " + countOfIncorrectChance); Thread.Sleep(2000); Console.Clear(); goto UserMenu; } else { return; } break; } case 3: { Console.WriteLine("Введите логин"); string login = Console.ReadLine(); Console.WriteLine("Введите пароль"); string password = Console.ReadLine(); createProject.Admins.Add(new Admin(login, password)); break; } } createProject.SerializeProj(projectPath); createProject.SerializeBreaks(breaksPath); createProject.SerializeAdmins(adminPath); Console.WriteLine("Для выхода в главное меню нажмите букву \"M\""); if (Console.ReadKey().Key == ConsoleKey.M) { goto start; } } catch (Exception e) { Console.WriteLine(e); } Console.ReadLine(); }