예제 #1
0
        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);
        }
예제 #2
0
        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;
                }
                }
            }
        }