예제 #1
0
        static void Main(string[] args)
        {
            var db      = new Database.Database();
            var session = new Session.LoginAccountSession();
            var user    = new User.User
            {
                Email      = "*****@*****.**", Name = "test", Surname = "testov", Username = "******", Password = "******",
                Activation = true
            };

            var admin = new Admin.Admin
            {
                Email    = "*****@*****.**",
                Username = "******",
                Password = "******"
            };

            db.AddUser(ref user);

            db.AddAdmin(ref admin);
            var mainMenuLoop = true;

            while (mainMenuLoop)
            {
                ConsoleInterface.PrintMenu(ConsoleInterface.MainMenuOptions);

                switch ((MainMenuOptions)ConsoleInterface.InputChoice(ConsoleInterface.MainMenuOptions.Length))
                {
                case MainMenuOptions.ADMIN:
                {
                    if (!session.Status)
                    {
                        Console.Clear();
                        string username, password;


                        Console.Write("Username: "******"Password: "******"Username: "******"Password: "******"Username: "******"Name: ");

                                name = Console.ReadLine();

                                try
                                {
                                    UserHelper.CheckForbiddenCharacter(name);
                                    break;
                                }
                                catch (Exception e)
                                {
                                    var line = Console.CursorTop;
                                    Console.ForegroundColor = ConsoleColor.DarkRed;
                                    Console.WriteLine(e.Message);
                                    ConsoleHelper.ClearConsole(line - 1, 10);
                                }
                            }

                            var surname = String.Empty;

                            while (true)
                            {
                                Console.Write("Surname: ");

                                surname = Console.ReadLine();

                                try
                                {
                                    UserHelper.CheckForbiddenCharacter(surname);
                                    break;
                                }
                                catch (Exception e)
                                {
                                    var line = Console.CursorTop;
                                    Console.ForegroundColor = ConsoleColor.DarkRed;
                                    Console.WriteLine(e.Message);
                                    ConsoleHelper.ClearConsole(line - 1, 10);
                                }
                            }

                            var age = 0;

                            while (true)
                            {
                                try
                                {
                                    Console.Write("Age: ");

                                    age = Convert.ToInt32(Console.ReadLine());
                                    UserHelper.CheckAge(age);
                                    break;
                                }
                                catch (Exception e)
                                {
                                    var line = Console.CursorTop;
                                    Console.ForegroundColor = ConsoleColor.DarkRed;
                                    Console.WriteLine(e.Message);
                                    ConsoleHelper.ClearConsole(line - 1, 10);
                                }
                            }

                            var email = String.Empty;

                            while (true)
                            {
                                Console.Write("E-mail: ");

                                email = Console.ReadLine();

                                try
                                {
                                    MailHelper.ValidateMail(email);
                                    break;
                                }
                                catch (Exception e)
                                {
                                    var line = Console.CursorTop;
                                    Console.ForegroundColor = ConsoleColor.DarkRed;
                                    Console.WriteLine(e.Message);
                                    ConsoleHelper.ClearConsole(line - 1, 10);
                                }
                            }

                            var password = String.Empty;

                            while (true)
                            {
                                Console.Write("Password: "******"Confirmation code sent! Check your mail!");
                                Console.ResetColor();

                                var accountCreated = false;
                                var tryCount       = 3;
                                while (tryCount-- > 0)
                                {
                                    Console.Write("Code > ");
                                    Console.ForegroundColor = ConsoleColor.DarkGreen;

                                    var code = Console.ReadLine();

                                    Console.ResetColor();

                                    if (CreateAccountSession.ConfirmAccount(ref newUser, code))
                                    {
                                        CreateAccountSession.Registration(ref db, ref newUser);
                                        session.Status          = true;
                                        session.User            = newUser;
                                        accountCreated          = true;
                                        Console.ForegroundColor = ConsoleColor.DarkRed;
                                        Console.WriteLine("Account activated!");
                                        Console.ResetColor();
                                        break;
                                    }

                                    Console.ForegroundColor = ConsoleColor.DarkRed;
                                    Console.WriteLine("Code is wrong! Try again.");
                                    Console.WriteLine($"You can try {tryCount} more!");
                                    Helper.ConsoleHelper.ClearConsole();
                                }

                                if (!accountCreated)
                                {
                                    Console.WriteLine("You can try later!");
                                }
                            }
                            catch (Exception e)
                            {
                                Console.ForegroundColor = ConsoleColor.DarkRed;
                                Console.WriteLine(e.Message);
                                Helper.ConsoleHelper.ClearConsole();
                            }


                            break;
                        }

                        case LoginMenuOptions.BACK:
                        {
                            loginMenuLoop = false;
                            break;
                        }
                        }
                        //user choices
                    }
                    break;
                }

                case MainMenuOptions.EXIT:
                {
                    mainMenuLoop = false;
                    break;
                }

                default:
                    break;
                }
            }
        }