public bool TryAddUser(List <User> users, out User newUser) { PasswordWriter passwordWriter = new PasswordWriter(); newUser = new User(); string usLoginStr, usPsswdStr; WriteLine("Новый пользователь,"); WriteLine("Введите логин:"); usLoginStr = ReadLine(); for (int i = 0; i < users.Count; i++) { if (users[i].Login == usLoginStr) { WriteLine("Логин уже занят!"); return(false); } } if (CheckUsername(usLoginStr)) { WriteLine($"Введите пароль(больше {MIN_PSSWD_LEN} символов):"); usPsswdStr = passwordWriter.Write(); if (CheckPassword(usPsswdStr)) { newUser.Login = usLoginStr.Trim(); newUser.Password = usPsswdStr; return(true); } else { WriteLine("Пароль недостаточно длинный!"); } } else { WriteLine("Логин пустой!"); } return(false); }
public void Run() { loginer = new Login(); users = new List <User>(); register = new Register(); passwordWriter = new PasswordWriter(); using (var context = new AppContext()) { users = context.Users.ToList(); products = context.Products.ToList(); } while (true) { switch (MainMenu()) { case 1: { string loginStr, passwordStr; Console.WriteLine("Введите логин: "); loginStr = Console.ReadLine(); Console.WriteLine("Введите пароль: "); passwordStr = passwordWriter.Write(); if (loginer.Access(users, loginStr, passwordStr)) { User user; using (var context = new AppContext()) { user = context.Users.Where(u => u.Login == loginStr).FirstOrDefault(); Console.WriteLine($"Добро пожаловать!"); bool flag = true; while (flag) { switch (InnerMenu()) { case 1: { if (products.Count > 0) { for (int i = 0; i < products.Count; i++) { Console.WriteLine($"{i + 1})"); products[i].Print(); } Console.WriteLine("Введите индекс товара: "); if (int.TryParse(Console.ReadLine(), out int buyIndex)) { if (buyIndex > 0 && buyIndex <= products.Count) { user.Cart.Products.Add(new Product() { Cost = products[buyIndex - 1].Cost, Name = products[buyIndex - 1].Name }); } } } break; } case 2: { if (user.Cart.Products.Count > 0) { foreach (var product in user.Cart.Products) { product.Print(); } } break; } case 3: { if (user.Cart.Products.Count > 0) { double sum = 0; foreach (var product in user.Cart.Products) { sum += product.Cost; product.Print(); } Console.WriteLine($"К оплате: {sum}"); user.Cart.Products.Clear(); } break; } case 4: { flag = false; break; } } } context.SaveChanges(); } } else { Console.WriteLine("Неверный логин пользователя или пароль!"); } break; } case 2: { if (register.TryAddUser(users, out User user)) { Console.WriteLine("Регистрация прошла успешно."); user.Cart = new Cart(); users.Add(user); using (var context = new AppContext()) { context.Users.Add(user); context.SaveChanges(); } } else { Console.WriteLine("Регистрация прервана!"); } break; } case 3: { Environment.Exit(0); break; } } } }