Beispiel #1
0
        public int ChooseOnMenu <T>(List <T> list)
        {
            //int choice;
            while (true)
            {
                Console.WriteLine("Enter a number to choose");
                for (int i = 0; i < list.Count; i++)
                {
                    Console.WriteLine($"{i + 1}.) {list[i]} ");
                }

                int choice = ValidationHelpers.ParseNumber(Console.ReadLine(), list.Count);

                if (choice == -1)
                {
                    MessageHelepers.Message("You've entered something wrong! Try again!", ConsoleColor.Red);
                    Thread.Sleep(2000);
                    continue;
                }
                else
                {
                    return(choice);
                }
            }
        }
        public void TrackingTime(ActivityType activity, User user, IUserService <User> userService)
        {
            Console.Clear();
            switch (activity)
            {
            case ActivityType.Reading:
                var reading = new Reading();
                reading.TrackTime();
                Console.WriteLine("Please enter how many pages you've read and what kind Of book you were reading:");
                Console.Write("Pages: ");
                reading.Pages    = ValidationHelpers.ParseNumber(Console.ReadLine(), int.MaxValue);
                reading.BookType = (BookType)menus.ShowBookTypes();
                reading.Id       = user.Id;

                user.ListOfActivities.Add(reading);
                userService.AddActivity(user, reading, user.ReadingActivities);

                MessageHelepers.Message("Activity is succesfully tracked!", ConsoleColor.Green);
                break;

            case ActivityType.Exercising:
                var exercising = new Exercising();
                exercising.TrackTime();
                Console.WriteLine("Please enter what kind of workout did you do");
                exercising.ExercisingType = (ExercisingType)menus.ShowExercisingTypes();

                user.ListOfActivities.Add(exercising);
                userService.AddActivity(user, exercising, user.ExercisingActivities);

                MessageHelepers.Message("Activity is succesfully tracked!", ConsoleColor.Green);
                break;

            case ActivityType.Working:
                var working = new Working();
                working.TrackTime();
                Console.WriteLine("Where were you working from?");
                working.WorkingFrom = (WorkingFrom)menus.ShowWorkingOptions();

                user.ListOfActivities.Add(working);
                userService.AddActivity(user, working, user.WorkingActivities);

                MessageHelepers.Message("Activity is succesfully tracked!", ConsoleColor.Green);
                break;

            case ActivityType.OtherHobbies:
                var otherHobbies = new OtherHobbies();
                otherHobbies.TrackTime();
                Console.WriteLine("Please enter the name of the hobby");
                otherHobbies.Hobby = Console.ReadLine();

                user.ListOfActivities.Add(otherHobbies);
                userService.AddActivity(user, otherHobbies, user.OtherHobbiesActivities);

                MessageHelepers.Message("Activity is succesfully tracked!", ConsoleColor.Green);
                break;

            default:
                break;
            }
        }
        public User LogIn(string username, string password)
        {
            var  users = db.GetAll();
            User user  = null;

            if (!ValidationHelpers.DoesUserNameExist(users, username))
            {
                for (int i = 1; i <= 3; i++)
                {
                    MessageHelepers.Message($"Wrong username you have 3 attepts otherwise the app wil close", ConsoleColor.Red);
                    Console.Write("Username: "******"Your account is deactivated! Do you want to activate it? y/n");
                string choice = Console.ReadLine();
                if (choice == "y")
                {
                    user.IsActive = true;
                    MessageHelepers.Message("Your account is now active!", ConsoleColor.Green);
                    MessageHelepers.Message("You succesfully logged in!", ConsoleColor.Green);
                    return(user);
                }
                else
                {
                    MessageHelepers.Message("You accout is still deactivated!", ConsoleColor.Red);
                    return(null);
                }
            }
            MessageHelepers.Message("You succesfully logged in!", ConsoleColor.Green);
            return(user);
        }
        public bool DeactivateAccount(User user)
        {
            Console.WriteLine("Are you sure you want to deactivate your account? y/n");
            string choice = Console.ReadLine();

            if (choice == "y")
            {
                user.IsActive = false;
                MessageHelepers.Message("Your account has been deacivated", ConsoleColor.Green);
                return(true);
            }
            return(false);
        }
        public void ChangeInfo(int userId, string firstName, string lastName)
        {
            var user = db.GetUserById(userId);

            if (ValidationHelpers.ValidateFirstAndLastName(firstName, lastName) == null)
            {
                MessageHelepers.Message("You've entered somethig wrong. The first and last name should not be shorter than 2 characters " +
                                        "and they slould not conatin any numbers!", ConsoleColor.Red);
                return;
            }
            user.FirstName = firstName;
            user.LastName  = lastName;
            db.UpdateUser(user);
            MessageHelepers.Message("You succesfully changed your first and last name!", ConsoleColor.Green);
        }
        public User Register(T user)
        {
            if (ValidationHelpers.ValidateFirstAndLastName(user.FirstName, user.LastName) == null ||
                ValidationHelpers.ValidateAge(user.Age) == -1 ||
                ValidationHelpers.ValidateUsername(user.Username) == null ||
                ValidationHelpers.ValidatePassword(user.Password) == null)
            {
                MessageHelepers.Message("You have entered something wrong!", ConsoleColor.Red);
                Console.ReadLine();
                return(null);
            }

            int id = db.Insert(user);

            Console.Clear();
            return(db.GetUserById(id));
        }
        public void ChangePassword(int userId, string oldPassword, string newPassword)
        {
            var user = db.GetUserById(userId);

            if (user.Password == oldPassword && oldPassword != newPassword)
            {
                if (ValidationHelpers.ValidatePassword(newPassword) == null)
                {
                    MessageHelepers.Message("Password should not be shorter than 6 characters, should contain at least one capital letter" +
                                            "and should contain at least one number", ConsoleColor.Red);
                    Thread.Sleep(3000);
                    return;
                }
            }
            else
            {
                MessageHelepers.Message("You entered your old password wrong or you new password cannot be your old password!", ConsoleColor.Red);
                Thread.Sleep(3000);
                return;
            }
            user.Password = newPassword;
            db.UpdateUser(user);
            MessageHelepers.Message("You succesfully changed your password!", ConsoleColor.Green);
        }
        static void Main(string[] args)
        {
            //UserData();
            while (true)
            {
                int userChoice = menus.LogInMenu();
                Console.Clear();
                switch (userChoice)
                {
                case 1:
                    Console.Write("Enter username: "******"Enter password: "******"Enter the folowing to register:");

                    Console.WriteLine("First name:");
                    string firstName = Console.ReadLine();
                    Console.WriteLine("Last name:");
                    string lastName = Console.ReadLine();
                    Console.WriteLine("Age:");
                    int age = ValidationHelpers.ParseNumber(Console.ReadLine(), 120);
                    Console.WriteLine("Username:"******"Password:"******"You succesfully registered!", ConsoleColor.Green);

                    currentUser = user;
                    if (currentUser == null)
                    {
                        continue;
                    }
                    break;

                case 3:
                    Environment.Exit(0);
                    break;
                }
                if (currentUser == null)
                {
                    continue;
                }
                bool isLoggedIn = true;
                while (isLoggedIn)
                {
                    Console.WriteLine($"Hi {currentUser.FirstName} choose one of the following?");
                    int          choice          = menus.MainMenu();
                    ActivityType currentActivity = (ActivityType)choice;
                    Console.Clear();
                    switch (choice)
                    {
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                        appServices.TrackingTime(currentActivity, currentUser, userService);
                        break;

                    case 5:
                        if (!ValidationHelpers.CheckIfListIsEmpty(currentUser.ListOfActivities, "statistics"))
                        {
                            continue;
                        }
                        int statisticsMenu = menus.StatisticsMenu();
                        userService.SeeStatistics(currentUser, statisticsMenu);
                        break;

                    case 6:
                        int accountMenu = menus.AccountMenu();
                        if (userService.AccountSettings(currentUser.Id, accountMenu, currentUser))
                        {
                            isLoggedIn = !isLoggedIn;
                        }
                        break;

                    case 7:
                        isLoggedIn = !isLoggedIn;
                        break;

                    default:
                        break;
                    }
                }
            }
        }