Beispiel #1
0
        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);
        }
Beispiel #2
0
        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");
     }
 }
Beispiel #4
0
        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("Данный логин занят.");
            }
        }
Beispiel #5
0
        /// <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);
        }
Beispiel #6
0
        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("ББ");
        }
Beispiel #7
0
 public void UniqueAction(BaseUser user)
 {
 }