public static int ReadOnlyInt(int a, int b) // ЦИФР-ВВОД { int value; bool ok = false; ConsoleKeyInfo key; do { ColorTextOut.CyanText("Введите значение: "); string buf = ""; do { key = Console.ReadKey(true); // Ignore any key out of range. if (((int)key.Key) >= 48 && ((int)key.Key <= 57)) { // Append the character to the password. buf += key.KeyChar; ColorTextOut.DarkCyanText(key.KeyChar.ToString()); } if (((int)key.Key) == 8 && buf.Length != 0) { buf = buf.Remove(buf.Length - 1); ColorTextOut.DarkCyanText(key.KeyChar.ToString() + " " + key.KeyChar.ToString()); } if (buf.Length > 5) { ColorTextOut.RedText("\t\t(допустимый разер не больше 5 символов)"); break; } // Exit if Enter key is pressed. } while (key.Key != ConsoleKey.Enter); ok = Int32.TryParse(buf, out value); if (value >= a && value <= b) { } else { ok = false; } if (ok == false) { ColorTextOut.DarkRedText("\nОшибка: "); ColorTextOut.RedText("Значение не правильно!!!"); Console.WriteLine(); Console.WriteLine(); } } while (ok == false); return(value); }
public static void DeleteUser() // УДАЛЕНИЕ ПОЛЬЗОВАТЕЛЯ { if (Admin_Check()) { ColorTextOut.GreenText("Удаление пользователя\n\n"); FileStream fs = new FileStream("Users.txt", FileMode.Open); BinaryFormatter formatter = new BinaryFormatter(); Users user = (Users)formatter.Deserialize(fs); if (user.Logins.Count == 1) { ColorTextOut.DarkRedText("Единственный пользователь не может быть удалён!\nДля прододжения нажмите любую клавишу..."); } else { ColorTextOut.CyanText("Пользователь: "); string _login = LoginPasswordTextIn.GetLogin(); ColorTextOut.CyanText("Пароль Пользователя: "); string _password = LoginPasswordTextIn.GetPassword(); if (Program.current_login == _login && Program.current_password == _password) { int Choise_Delete; ColorTextOut.RedText("\nВы уверены что хотите удалить Администатора?\nВ данном случае система перезапустится и роль администатора перейдёт следующему по спику пользователю\n\n"); ColorTextOut.CyanText("1.Да\n2.Нет\n\n"); Choise_Delete = IntNumRangeIn.ReadOnlyInt(1, 2); switch (Choise_Delete) { case 1: { fs.SetLength(0); Program.admin_changed = true; user.Logins.Remove(_login); user.Passwords.Remove(_password); formatter.Serialize(fs, user); // Сериализуем класс. ColorTextOut.DarkCyanText("\n\nУчётная запись Администратора удалёна! Данная роль перешла следующему по списку пользователю!\nДля продолжения нажмите любую клавишу..."); break; } case 2: { ColorTextOut.DarkCyanText("\n\nУчётная запись администратора не удалена!\n Для продолжения нажмите любую клавишу..."); break; } } } else { { try { bool user_absent = true; for (int i = 0; i < user.Logins.Count; i++) { if (_login == user.Logins[i] & _password == user.Passwords[i]) { user_absent = false; break; } } if (user_absent == true) { ColorTextOut.DarkRedText("\nПользователь или пароль не верны! Для продолжения нажмите любую клавишу..."); } else { fs.SetLength(0); user.Logins.Remove(_login); user.Passwords.Remove(_password); formatter.Serialize(fs, user); // Сериализуем класс. Logs.DeleteUser(_login); ColorTextOut.DarkCyanText("\nПользователь удалён! Для продолжения нажмите любую клавишу..."); } } catch { ColorTextOut.DarkRedText("\nПользователь не навйлен! Для продолжения нажмите любую клавишу..."); } } } } fs.Close(); } }
public static void AdminRightsTransfer() // ПЕРЕДАЧА ПРАВ { if (Admin_Check()) { ColorTextOut.GreenText("Передача прав Администрора\n\n"); FileStream fs = new FileStream("Users.txt", FileMode.Open); BinaryFormatter formatter = new BinaryFormatter(); Users user = (Users)formatter.Deserialize(fs); if (user.Logins.Count == 1) { ColorTextOut.DarkRedText("Единственный пользователь не может передать права!\nДля прододжения нажмите любую клавишу..."); } else { ColorTextOut.CyanText("Пользователь: "); string _login = LoginPasswordTextIn.GetLogin(); ColorTextOut.CyanText("Пароль Пользователя: "); string _password = LoginPasswordTextIn.GetPassword(); if (Program.current_login == _login && Program.current_password == _password) { ColorTextOut.RedText("\nВы уже являетесь администратором\nДля прододжения нажмите любую клавишу..."); } else { { try { bool user_absent = true; int NewAdmin = 0; for (int i = 0; i < user.Logins.Count; i++) { if (_login == user.Logins[i] & _password == user.Passwords[i]) { user_absent = false; NewAdmin = i; break; } } if (user_absent == true) { ColorTextOut.DarkRedText("\nЛогин пользователя или пароль не верны! Для продолжения нажмите любую клавишу..."); } else { fs.SetLength(0); user.Logins[0] = user.Logins[NewAdmin]; user.Passwords[0] = user.Passwords[NewAdmin]; user.Logins[NewAdmin] = Program.current_login; user.Passwords[NewAdmin] = Program.current_password; formatter.Serialize(fs, user); // Сериализуем класс. Logs.TransferRights(_login, Program.current_login); ColorTextOut.DarkCyanText("\nПрава Переданы! Для продолжения нажмите любую клавишу..."); } } catch { ColorTextOut.DarkRedText("\nПользователь не навйлен! Для продолжения нажмите любую клавишу..."); } } } } fs.Close(); } }