Example #1
0
        public void SelectOption(ConsoleManager konsola, IUserRepository database, IValidator validator)
        {
            int          option     = 0;
            SHA512       sha512Hash = SHA512.Create();
            HashPassword hashpass   = new HashPassword();

            do
            {
                Console.WriteLine("[1] Zaloguj");
                Console.WriteLine("[2] Zarejestruj");
                Console.WriteLine("[3] Wyjdź");
                Console.Write("Wybierz: ");
                try
                {
                    option = Convert.ToInt32(Console.ReadLine());
                }
                catch (Exception)
                {
                    Console.WriteLine("Niepoprawna opcja");
                    Console.ReadKey();
                }

                User user = new User();

                switch (option)
                {
                case 1:
                    user          = konsola.InputCredentials();
                    user.Password = hashpass.GetHash(sha512Hash, user.Password);
                    if (validator.CheckIfLoginExists(user, database) == true)
                    {
                        if (validator.CheckPassword(user, database) == true)
                        {
                            konsola.UserLoginMessage();
                        }
                        else
                        {
                            Console.WriteLine("Hasło niepoprawne");
                            Console.ReadKey();
                        }
                    }
                    else
                    {
                        Console.WriteLine("Podany login nie istnieje");
                        Console.ReadKey();
                    }
                    break;

                case 2:
                    user = konsola.InputCredentials();
                    if (validator.CheckIfLoginExists(user, database) == false)
                    {
                        if (validator.ValidatePassword(user, database))
                        {
                            database.AddUser(user);
                        }
                        else
                        {
                            Console.WriteLine("Hasło musi zawierać co najmniej 7 znaków, w tym jedną cyfrę");
                            Console.ReadKey();
                        }
                    }
                    else
                    {
                        Console.WriteLine("Login już istnieje.");
                        Console.ReadKey();
                    }
                    break;
                }
                Console.Clear();
            } while (option != 3);

            Console.WriteLine("-------------------");
            foreach (User u in database.GetUsersList())
            {
                Console.WriteLine(u.Login + " " + u.Password);
            }
        }