public bool SignIn(out BaseUser user) { Console.Clear(); Console.Write("Введите логин: "); string Login = Console.ReadLine(); Console.Clear(); Console.Write("Введите пароль: "); string Password = Console.ReadLine(); Console.Clear(); var result = from item in Users where item.Login == Login && item.Password == Password select item; if (result.Count() == 1) { List <BaseUser> users = result.ToList(); //Console.WriteLine(users[0].Info()); user = users[0]; return(true); } Console.WriteLine("Не верно введены данные."); user = null; return(false); }
public void SetUser() { BaseUser user = new BaseUser(); Console.Clear(); Console.Write("Введите логин: "); user.Login = Console.ReadLine(); Console.Clear(); Console.Write("Ввеите имя: "); user.Name = Console.ReadLine(); Console.Clear(); Console.Write("Введите возраст: "); int Age; while (!int.TryParse(Console.ReadLine(), out Age)) { Console.WriteLine("Не корректно введены данные"); } user.Age = Age; Console.Clear(); //Можно и даже нужно повторно просить ввести пароль но мне лень :( Console.Write("Введите пароль: "); #region hidden password ConsoleKeyInfo key; do { key = Console.ReadKey(true); if (key.Key != ConsoleKey.Backspace) { user.Password += key.KeyChar; Console.Write("*"); } else { if (user.Password.Length != 0) { user.Password = user.Password.Remove(user.Password.Length - 1); } string message = "Введите пароль: "; for (int i = 0; i < user.Password.Length; i++) { message += "*"; } Console.Clear(); Console.Write(message); } }while (key.Key != ConsoleKey.Enter); user.Password = user.Password.Remove(user.Password.Length - 1); Console.Clear(); #endregion Registration(user); }
public void Ban(BaseUser user) { if (user.GetType() == typeof(Moderator)) { Console.WriteLine("Ты не можешь забанить модератора"); } else { //Ыыыыы)00)0)) Console.WriteLine("Ха-ха-ха отлетел очередняра xD"); } }
void Registration(BaseUser user) { //метод вынесен отдельно потому что в будущем может быть добавлена доп. проверка на уникальность пользователя и пр. var result = from item in Users where item.Login == user.Login select item; if (result.Count() == 0) { Users.Add(user); Console.WriteLine("Вы успешно зарегестрировались"); } else { Console.WriteLine("Данный логин занят."); } }
/// <summary> /// Все действия которые может сделать пользователь. /// </summary> /// <param name="user">Пользователь</param> /// <returns>Номер действия</returns> public int GetAction(BaseUser user) { int action; bool flag = true; do { Console.WriteLine("Что хотите сделать?"); //Это базовые действия для всех аккаунтов Console.WriteLine("Выйти из аккаунта и из приложения. (0)"); Console.WriteLine("Выйти с аккауна. (1)"); Console.WriteLine("Вывести информацию об аккаунте. (2)"); Console.WriteLine("Вывести корзину. (3)"); Console.WriteLine("Купить товар. (4)"); Console.WriteLine("Добавить товар в корзину. (5)"); if (user.GetType() == typeof(Admin)) { Console.WriteLine("Добавить продукт для продажи. (6)"); } if (user.GetType() == typeof(Moderator)) { Console.WriteLine("Забанить дурачка. (6)"); } Console.Write("Введите цифру действий: "); //тут вроде как можно упростить условие(сделать на пару символов короче), //но у меня голова заболела пока пытался понять как именно упростить :) if (int.TryParse(Console.ReadLine(), out action) && (action >= 0 && action < 6)) { flag = false; } else { Console.Clear(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Не корректно введены данные. Попробуйте снова."); Console.ForegroundColor = ConsoleColor.White; } } while (flag); return(action); }
public Exercise1() { Console.Clear(); Console.WriteLine("Задание 3\n"); Shop platform = new Shop(); BaseUser user = null; do { #region SignIn or SignUp do { Console.WriteLine("Вы хотите зарегистрироваться(0) или авторизоваться(1)?"); int result; while (!int.TryParse(Console.ReadLine(), out result) && (result == 0 || result == 1)) { Console.WriteLine("Не корректно введены данные. Попробуйте снова"); } if (result == 0) { platform.SetUser(); } else { platform.SignIn(out user); } } while (user == null); #endregion do { switch (platform.GetAction(user)) { case 0: //да я в курсе что goto лучше не использовать //но break для выхода из цикла сюда не запихнуть xD goto exit; case 1: user = null; break; case 2: user.Info(); break; case 3: user.GetBasket(); break; case 4: user.Buy(platform.GetProducts()); break; case 5: platform.GetProducts(); break; case 6: platform.UniqueAction(user); break; default: Console.WriteLine("Некорректно введены данные."); break; } } while (user != null); } while (true); exit: Console.WriteLine("ББ"); }
public void UniqueAction(BaseUser user) { }