public void TrackExercising(int time, User user)
 {
     while (true)
     {
         Console.WriteLine("Please select the type of exercise: ");
         string[] exercisingTypes = Enum.GetNames(typeof(ExercisingType));
         for (int i = 0; i < exercisingTypes.Length; i++)
         {
             Console.WriteLine($"{i + 1} - {exercisingTypes[i]}");
         }
         var input = Console.ReadLine();
         int.TryParse(input, out int answer);
         if (answer == 1 || answer == 2 || answer == 3)
         {
             var exercising = new Exercising()
             {
                 Type        = (ExercisingType)answer,
                 SessionTime = time
             };
             user.ExercisingSessions.Add(exercising);
             break;
         }
         Console.WriteLine("Please choose a valid type.");
     }
 }
        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 UserService()
 {
     _database    = new FileDatabase <T>();
     reading      = new Reading();
     exercising   = new Exercising();
     working      = new Working();
     otherHobbies = new OtherHobbies();
 }
Exemple #4
0
        public static event Exercising Myexercise;           //exercise event

        static void Main(string[] args)
        {
            double r = 0, b = 0, p = 0;
            bool   parse = false;
            string first = "", last = "";
            double weight = 0, height = 0;

            string[] profile;


            using (StreamReader reader = new StreamReader("exercise.txt")) // opensamdreads info from exercise.txt
            {
                profile = reader.ReadLine().Split(' ');                    //spilts line by white space, stored in array profile
            }

            first  = profile[0];
            last   = profile[1];
            weight = double.Parse(profile[2]);
            height = double.Parse(profile[3]);

            Console.WriteLine("Hello {0} {1}", first, last);  // greets user
            Console.WriteLine();
            while (!parse)
            {
                Console.WriteLine("Please enter how long you want to run in minutes");   // exercise length prompt
                try
                {
                    parse = double.TryParse(Console.ReadLine(), out r);

                    if (!parse)
                    {
                        throw new Exception();
                    }
                }
                catch
                {
                    Console.WriteLine("Please enter a numerical value");
                }
            }
            parse = false;
            while (!parse)
            {
                Console.WriteLine("Please enter how long you want to bike in minutes");
                try
                {
                    parse = double.TryParse(Console.ReadLine(), out b);

                    if (!parse)
                    {
                        throw new Exception();
                    }
                }
                catch
                {
                    Console.WriteLine("Please enter a numerical value");
                }
            }
            parse = false;
            while (!parse)
            {
                Console.WriteLine("Please enter how many pushups you want to do");
                try
                {
                    parse = double.TryParse(Console.ReadLine(), out p);

                    if (!parse)
                    {
                        throw new Exception();
                    }
                }
                catch
                {
                    Console.WriteLine("Please enter a numerical value");
                }
            }
            parse = false;
            Console.WriteLine();
            Myexercise += new Exercising(ExerciseStart);  // begin exercise event
            Myexercise(first, last);
            Myexercise -= new Exercising(ExerciseStart);
            Console.WriteLine();
            Running run = new Running(first, last, weight, height, r); //starts running exercise

            System.Threading.Thread.Sleep(2000);                       // pause system for 2 second while exercising
            Biking bike = new Biking(first, last, weight, height, b);  //starts biking exercise

            System.Threading.Thread.Sleep(2000);
            PushUps push = new PushUps(first, last, weight, height, p);   //starts push up exercise

            System.Threading.Thread.Sleep(2000);
            Console.WriteLine();
            Myexercise += new Exercising(ExerciseFinish); // end exercise event
            Myexercise(first, last);
            Myexercise -= new Exercising(ExerciseFinish);
            Console.WriteLine("Estimated calories burned: {0}", Math.Round(run.Caloriesburned + bike.Caloriesburned + push.Caloriesburned, 2));
            Console.WriteLine("Full results can be seen in the file ExerciseResults.txt");
            using (StreamWriter writer = new StreamWriter("ExerciseResults.txt")) //writes exercise info to output file
            {
                writer.WriteLine("Exercise Results");
                writer.WriteLine("{0} {1} | Height: {2} | Weight: {3}lbs | BMI: {4}", run.First, run.Last, run.Height, run.Weight, Math.Round(run.Bmi, 2));
                writer.WriteLine("Running: Time: {0} Estimated Calories burned: {1}", run.Time, Math.Round(run.Caloriesburned, 2));
                writer.WriteLine("Biking: Time: {0} Estimated Calories burned: {1}", bike.Time, Math.Round(bike.Caloriesburned, 2));
                writer.WriteLine("Push Ups: Amount done: {0} Estimated Calories burned: {1}", push.Amount, Math.Round(push.Caloriesburned, 2));
            }
        }
Exemple #5
0
 public void InsertExercise(Exercising exercise)
 {
     _exercisingDb.InsertActivity(exercise);
 }
 public void StartExercise(Exercising exercise)
 {
     _exercisingDb.InsertActivity(exercise);
     this.SaveExercise();
 }
        static void Main(string[] args)
        {
            while (true)
            {
                int userInput = menu.StartMenu();
                while (true)
                {
                    if (userInput == 1)
                    {
                        user = userService.Login();
                        if (user == null)
                        {
                            Environment.Exit(0);
                        }
                        break;
                    }
                    else if (userInput == 2)
                    {
                        user = userService.Register();
                        if (user == null)
                        {
                            continue;
                        }
                        break;
                    }
                }

                Console.Clear();
                bool main = false;
                while (!main)
                {
                    int mainMenu = menu.MainMenu();
                    switch (mainMenu)
                    {
                    case 1:
                        bool track = false;
                        while (!track)
                        {
                            int trackMenu = menu.TrackMenu();
                            switch (trackMenu)
                            {
                            case 1:
                                Reading reading = new Reading();
                                reading.Stopwatch = activityService.TrackActivity("reading");
                                Console.WriteLine("Enter the number of page you read");
                                reading.Pages = int.Parse(Console.ReadLine());
                                int readingMenu = menu.ReadingMenu();
                                switch (readingMenu)
                                {
                                case 1:
                                    reading.Type = Db.Enums.ReadingType.BellesLettras;
                                    break;

                                case 2:
                                    reading.Type = Db.Enums.ReadingType.Fiction;
                                    break;

                                case 3:
                                    reading.Type = Db.Enums.ReadingType.ProffesionalLiterature;
                                    break;
                                }
                                readingService.AddReadingActivity(reading);
                                Console.WriteLine($"{user.Username} you read total of {reading.Pages}, from {reading.Type} type of book, for {reading.Stopwatch.Elapsed.TotalMinutes} minutes");
                                break;

                            case 2:
                                Exercising exercise = new Exercising();
                                exercise.Stopwatch = activityService.TrackActivity("exercising");
                                int exerciseMenu = menu.ExercisingMenu();
                                switch (exerciseMenu)
                                {
                                case 1:
                                    exercise.Type = Db.Enums.ExercisingType.General;
                                    break;

                                case 2:
                                    exercise.Type = Db.Enums.ExercisingType.Running;
                                    break;

                                case 3:
                                    exercise.Type = Db.Enums.ExercisingType.Sport;
                                    break;
                                }
                                exercisingService.AddExercisingActivity(exercise);
                                Console.WriteLine($"{user.Username} you did {exercise.Type} for {exercise.Stopwatch.Elapsed.TotalMinutes} minutes");
                                break;

                            case 3:
                                Working working = new Working();
                                working.Stopwatch = activityService.TrackActivity("working");
                                int workingMenu = menu.WorkingMenu();
                                switch (workingMenu)
                                {
                                case 1:
                                    working.WorkFrom = Db.Enums.WorkingType.Home;
                                    break;

                                case 2:
                                    working.WorkFrom = Db.Enums.WorkingType.Office;
                                    break;
                                }
                                workingService.AddWorkingActivity(working);
                                Console.WriteLine($"{user.Username} you worked from {working.WorkFrom} for {working.Stopwatch.Elapsed.TotalMinutes} minutes");
                                break;

                            case 4:
                                Console.WriteLine("Tell me what did you do today:");
                                OtherHobby otherHobby = new OtherHobby();
                                otherHobby.HobbyName = Console.ReadLine();
                                otherHobby.Stopwatch = activityService.TrackActivity(otherHobby.HobbyName);
                                otherHobbyService.AddOtherHobbyActivity(otherHobby);
                                Console.WriteLine($"{user.Username}, you've been doing {otherHobby.HobbyName} for {otherHobby.Stopwatch.Elapsed.TotalMinutes} minutes");
                                break;

                            case 5:
                                track = true;
                                break;
                            }
                        }
                        break;
                    }
                }
                Console.ReadLine();
            }
        }
Exemple #8
0
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Clear();
                int registerOrLoginChoise = _menus.LogInOrRegisterMenu();
                while (true)
                {
                    if (registerOrLoginChoise == 1)
                    {
                        _user = _userService.LogIn();
                        if (_user == null)
                        {
                            Environment.Exit(0);
                        }
                        break;
                    }
                    else
                    {
                        Console.Clear();
                        _user = _userService.Register();
                        if (_user == null)
                        {
                            continue;
                        }
                        break;
                    }
                }
                Console.Clear();
                bool mainMenu = true;
                while (mainMenu)
                {
                    Console.Clear();
                    switch (_menus.MainMenu())
                    {
                    case 1:
                        //Track time
                        bool breakTrackMenu = true;
                        while (breakTrackMenu)
                        {
                            Console.Clear();
                            switch (_menus.TrackMenu())
                            {
                            case 1:
                                //Reading
                                Reading reading = new Reading();
                                reading.Stopwatch = _activitiesService.ActivityTime("reading");
                                MessageHelper.Color("Please enter number of pages that you have read", ConsoleColor.Green);
                                reading.Pages = ValidationHelper.ParsedNumber(Console.ReadLine());
                                switch (_menus.ReadingMenu())
                                {
                                case 1:
                                    reading.Type = Db.Enums.ReadingType.BellesLettres;
                                    break;

                                case 2:
                                    reading.Type = Db.Enums.ReadingType.Fiction;
                                    break;

                                case 3:
                                    reading.Type = Db.Enums.ReadingType.ProfessionalLiterature;
                                    break;
                                }
                                _readingService.InsertReading(reading);

                                MessageHelper.Color($"Mr.{_user.LastName} you have been reading for {reading.Stopwatch.Elapsed.Seconds} seconds and you read {reading.Pages} pages from the book that has genre {reading.Type}", ConsoleColor.Yellow);
                                Thread.Sleep(3000);
                                break;

                            case 2:
                                //Excercising
                                Exercising exercise = new Exercising();
                                exercise.Stopwatch = _activitiesService.ActivityTime("exercising");
                                switch (_menus.ExerciseMenu())
                                {
                                case 1:
                                    exercise.ExcercisingType = Db.Enums.ExcercisingType.General;
                                    break;

                                case 2:
                                    exercise.ExcercisingType = Db.Enums.ExcercisingType.Running;
                                    break;

                                case 3:
                                    exercise.ExcercisingType = Db.Enums.ExcercisingType.Sport;
                                    break;
                                }
                                _exercisingService.InsertExercise(exercise);
                                MessageHelper.Color($"Mr.{_user.LastName} you have been doing {exercise.ExcercisingType} exercise for {exercise.Stopwatch.Elapsed.Seconds}seconds", ConsoleColor.Yellow);
                                Thread.Sleep(3000);
                                break;

                            case 3:
                                //Working
                                Working working = new Working();
                                working.Stopwatch = _activitiesService.ActivityTime("working");
                                switch (_menus.WorkingMenu())
                                {
                                case 1:
                                    working.WorkingFrom = Db.Enums.WorkingFrom.Office;
                                    break;

                                case 2:
                                    working.WorkingFrom = Db.Enums.WorkingFrom.Home;
                                    break;
                                }
                                _workingService.InsertWork(working);
                                MessageHelper.Color($"Mr.{_user.LastName} you have been working from {working.WorkingFrom} for {working.Stopwatch.Elapsed.Seconds} seconds", ConsoleColor.Yellow);
                                Thread.Sleep(3000);
                                break;

                            case 4:
                                //Other Hobbies
                                OtherHobbies otherHobbie = new OtherHobbies();
                                MessageHelper.Color("It's nice to try something new. What's the name of the new Hobby?", ConsoleColor.Green);
                                otherHobbie.Name      = Console.ReadLine();
                                otherHobbie.Stopwatch = _activitiesService.ActivityTime(otherHobbie.Name);
                                _otherHobbiesService.InsertOtherHobbies(otherHobbie);
                                MessageHelper.Color($"Mr.{_user.LastName} you have been doing your new hobbie {otherHobbie.Name} for {otherHobbie.Stopwatch.Elapsed.Seconds} seconds", ConsoleColor.Yellow);
                                Thread.Sleep(3000);
                                break;

                            case 5:
                                MessageHelper.Color("Going back to Main Menu!", ConsoleColor.Green);
                                Thread.Sleep(2000);
                                breakTrackMenu = false;
                                break;
                            }
                        }
                        break;

                    case 2:
                        //Statistics
                        bool breakStatsMenu = true;
                        while (breakStatsMenu)
                        {
                            Console.Clear();
                            switch (_menus.StatsMenu())
                            {
                            case 1:
                                //Reading Stats
                                _readingService.Statistics();
                                MessageHelper.Color("Press any key to go back", ConsoleColor.Red);
                                Console.ReadLine();
                                break;

                            case 2:
                                //Exercising stats
                                _exercisingService.Statistics();
                                MessageHelper.Color("Press any key to go back", ConsoleColor.Red);
                                Console.ReadLine();
                                break;

                            case 3:
                                //Working stats
                                _workingService.Statistics();
                                MessageHelper.Color("Press any key to go back", ConsoleColor.Red);
                                Console.ReadLine();
                                break;

                            case 4:
                                //OtherHobbies stats
                                _otherHobbiesService.Statistics();
                                MessageHelper.Color("Press any key to go back", ConsoleColor.Red);
                                Console.ReadLine();
                                break;

                            case 5:
                                //Global stats
                                List <int> globalList = new List <int>
                                {
                                    _exercisingService.TotalSeconds(),
                                           _otherHobbiesService.TotalSeconds(),
                                           _readingService.TotalSeconds(),
                                           _workingService.TotalSeconds()
                                };
                                int favoriteActivity = globalList.Max();
                                Console.WriteLine($"Total activity time: {_activitiesService.TotalActivityTime(globalList)}seconds");
                                if (favoriteActivity != 0)
                                {
                                    if (favoriteActivity == _exercisingService.TotalSeconds())
                                    {
                                        Console.WriteLine("Favorite activity: Exercise");
                                    }
                                    else if (favoriteActivity == _otherHobbiesService.TotalSeconds())
                                    {
                                        Console.WriteLine("Favorite activity: Hobbie");
                                    }
                                    else if (favoriteActivity == _readingService.TotalSeconds())
                                    {
                                        Console.WriteLine("Favorite activity: Reading");
                                    }
                                    else
                                    {
                                        Console.WriteLine("Favorite activity: Working");
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("You don't have favorite activity yet");
                                }
                                MessageHelper.Color("Press any key to go back", ConsoleColor.Red);
                                Console.ReadLine();
                                break;

                            case 6:
                                MessageHelper.Color("Going back to Main Menu!", ConsoleColor.Green);
                                Thread.Sleep(2000);
                                breakStatsMenu = false;
                                break;
                            }
                        }
                        break;

                    case 3:
                        //Acc Management
                        bool accMng = true;
                        while (accMng)
                        {
                            Console.Clear();
                            switch (_menus.AccManagement())
                            {
                            case 1:
                                //change password
                                Console.Clear();
                                Console.WriteLine($"Mr. {_user.LastName}, please enter new password");
                                _userService.ChangePassword(_user.Id, _user.Password, Console.ReadLine());
                                break;

                            case 2:
                                //change First and Last Name
                                Console.Clear();
                                Console.WriteLine("Please enter new First name");
                                string firstName = Console.ReadLine();
                                Console.WriteLine("Please enter new Last name");
                                string lastName = Console.ReadLine();
                                _userService.ChangeInfo(_user.Id, firstName, lastName);
                                break;

                            case 3:
                                Console.Clear();
                                _userService.RemoveUser(_user.Id);
                                Console.WriteLine("Deactivating the account. Thank you for using our service");
                                Styles.Spiner();
                                MessageHelper.Color("The account has been deactivated", ConsoleColor.Red);
                                mainMenu = false;
                                break;

                            case 4:
                                MessageHelper.Color("Going back to Main Menu!", ConsoleColor.Green);
                                Thread.Sleep(2000);
                                accMng = false;
                                break;
                            }
                        }
                        break;

                    case 4:
                        _user = null;
                        MessageHelper.Color("Thank you for using our application! Have a good day!", ConsoleColor.Green);
                        mainMenu = false;
                        break;
                    }
                }
            }
        }
Exemple #9
0
 public void AddExercisingActivity(Exercising exercising)
 {
     _exercisingActivityDb.InsertActivity(exercising);
 }
Exemple #10
0
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Clear();
                int registerOrLoginChoise = _menus.LogInOrRegisterMenu();
                while (true)
                {
                    if (registerOrLoginChoise == 1)
                    {
                        _user = _userService.LogIn();
                        if (_user == null)
                        {
                            Environment.Exit(0);
                        }
                        break;
                    }
                    else
                    {
                        Console.Clear();
                        _user = _userService.Register();
                        if (_user == null)
                        {
                            continue;
                        }
                        break;
                    }
                }
                Console.Clear();
                bool mainMenu = true;
                while (mainMenu)
                {
                    Console.Clear();
                    switch (_menus.MainMenu())
                    {
                    case 1:
                        //Track time
                        bool trackMenu = true;
                        while (trackMenu)
                        {
                            Console.Clear();
                            switch (_menus.TrackMenu())
                            {
                            case 1:
                                //Reading
                                Reading reading = new Reading();
                                reading.User = _user;
                                var timeSpentReading = _activitiesService.TimeSpentOnActivity("reading", _stopwatch);
                                reading.TimeSpentInSeconds += timeSpentReading;
                                MessageHelper.Color("Please enter number of pages that you have read", ConsoleColor.Green);
                                int numberOfPages;
                                var isNumber = int.TryParse(Console.ReadLine(), out numberOfPages);
                                reading.Pages = numberOfPages;
                                switch (_menus.ReadingMenu())
                                {
                                case 1:
                                    reading.GenreOfBook = GenreOfBook.BellesLettres;
                                    break;

                                case 2:
                                    reading.GenreOfBook = GenreOfBook.Fiction;
                                    break;

                                case 3:
                                    reading.GenreOfBook = GenreOfBook.ProfessionalLiterature;
                                    break;
                                }
                                _readingService.InsertReading(reading);
                                MessageHelper.Color($"{_user.LastName} you have been reading for {reading.TimeSpentInSeconds} seconds and you read {reading.Pages} pages from the book that has genre {reading.GenreOfBook}", ConsoleColor.Yellow);
                                Thread.Sleep(3000);
                                break;

                            case 2:
                                //Excercising
                                Exercising exercise = new Exercising();
                                exercise.User = _user;
                                var timeSpentExercising = _activitiesService.TimeSpentOnActivity("exercising", _stopwatch);
                                exercise.TimeSpentInSeconds += timeSpentExercising;
                                switch (_menus.ExerciseMenu())
                                {
                                case 1:
                                    exercise.TypeOfExercise = TypeOfExercise.General;
                                    break;

                                case 2:
                                    exercise.TypeOfExercise = TypeOfExercise.Running;
                                    break;

                                case 3:
                                    exercise.TypeOfExercise = TypeOfExercise.Sport;
                                    break;
                                }
                                _exercisingService.StartExercise(exercise);
                                MessageHelper.Color($"{_user.LastName} you have been doing {exercise.TypeOfExercise} exercise for {exercise.TimeSpentInSeconds} seconds", ConsoleColor.Yellow);
                                Thread.Sleep(3000);
                                break;

                            case 3:
                                //Working
                                Working working = new Working();
                                working.User = _user;
                                var timeSpentWorking = _activitiesService.TimeSpentOnActivity("working", _stopwatch);
                                working.TimeSpentInSeconds += timeSpentWorking;
                                switch (_menus.WorkingMenu())
                                {
                                case 1:
                                    working.WorkingFrom = WorkingFrom.Office;
                                    break;

                                case 2:
                                    working.WorkingFrom = WorkingFrom.Home;
                                    break;
                                }
                                _workingService.InsertWork(working);
                                MessageHelper.Color($"{_user.LastName} you have been working from {working.WorkingFrom} for {working.TimeSpentInSeconds} seconds", ConsoleColor.Yellow);
                                Thread.Sleep(3000);
                                break;

                            case 4:
                                //Hobies
                                MessageHelper.Color("What's the name of the new Hobby?", ConsoleColor.Green);
                                var   nameOfHobie = Console.ReadLine();
                                Hobie hobie       = _hobiesService.GetHobie(nameOfHobie) ?? new Hobie();
                                hobie.User = _user;
                                var timeSpentOnHobie = _activitiesService.TimeSpentOnActivity("hobie", _stopwatch);
                                hobie.TimeSpentInSeconds += timeSpentOnHobie;
                                _hobiesService.InsertHobies(hobie);
                                MessageHelper.Color($"{_user.LastName} you have been doing your new hobbie {hobie.NameOfHobie} for {hobie.TimeSpentInSeconds} seconds", ConsoleColor.Yellow);
                                Thread.Sleep(3000);
                                break;

                            case 5:
                                MessageHelper.Color("Going back to Main Menu!", ConsoleColor.Green);
                                Thread.Sleep(2000);
                                trackMenu = false;
                                break;
                            }
                        }
                        break;

                    case 2:
                        //Statistics
                        bool StatsMenu = true;
                        while (StatsMenu)
                        {
                            Console.Clear();
                            switch (_menus.StatsMenu())
                            {
                            case 1:
                                //Reading Stats
                                _readingService.Statistics(_user);
                                MessageHelper.Color("Press any key to go back", ConsoleColor.Red);
                                Console.ReadLine();
                                break;

                            case 2:
                                //Exercising stats
                                _exercisingService.Statistics(_user);
                                MessageHelper.Color("Press any key to go back", ConsoleColor.Red);
                                Console.ReadLine();
                                break;

                            case 3:
                                //Working stats
                                _workingService.Statistics(_user);
                                MessageHelper.Color("Press any key to go back", ConsoleColor.Red);
                                Console.ReadLine();
                                break;

                            case 4:
                                //OtherHobbies stats
                                _hobiesService.Statistics(_user);
                                MessageHelper.Color("Press any key to go back", ConsoleColor.Red);
                                Console.ReadLine();
                                break;

                            case 5:
                                //Global stats
                                Dictionary <string, int> dict = new Dictionary <string, int>();
                                dict.Add("Reading", _readingService.TotalSeconds());
                                dict.Add("Working", _workingService.TotalSeconds());
                                dict.Add("Hobies", _hobiesService.TotalSeconds());
                                dict.Add("Exercise", _exercisingService.TotalSeconds());

                                var favouriteActivity = dict.Aggregate((l, r) => l.Value > r.Value ? l : r);
                                var totalActiviyTime  = dict.Sum(x => x.Value);

                                Console.WriteLine($"Total activity time: {totalActiviyTime / (double)3600 } hours");

                                if (favouriteActivity.Value == 0)
                                {
                                    Console.WriteLine("You don't have favorite activity yet");
                                }
                                else
                                {
                                    Console.WriteLine("Favorite activity: " + favouriteActivity.Key);
                                }

                                MessageHelper.Color("Press any key to go back", ConsoleColor.Red);
                                Console.ReadLine();
                                break;

                            case 6:
                                MessageHelper.Color("Going back to Main Menu!", ConsoleColor.Green);
                                Thread.Sleep(2000);
                                StatsMenu = false;
                                break;
                            }
                        }
                        break;

                    case 3:
                        //Acc Management
                        bool manageAccaount = true;
                        while (manageAccaount)
                        {
                            Console.Clear();
                            switch (_menus.AccManagement())
                            {
                            case 1:
                                //change password
                                Console.Clear();
                                Console.WriteLine($"Mr. {_user.LastName}, please enter new password");
                                _userService.ChangePassword(_user.Id, _user.Password, Console.ReadLine());
                                break;

                            case 2:
                                //change First and Last Name
                                Console.Clear();
                                Console.WriteLine("Please enter new First name");
                                string firstName = Console.ReadLine();
                                Console.WriteLine("Please enter new Last name");
                                string lastName = Console.ReadLine();
                                _userService.ChangeInfo(_user.Id, firstName, lastName);
                                break;

                            case 3:
                                Console.Clear();
                                _userService.RemoveUser(_user.Id);
                                Console.WriteLine("Deactivating the account. Thank you for using our service");

                                MessageHelper.Color("The account has been deactivated", ConsoleColor.Red);
                                mainMenu = false;
                                break;

                            case 4:
                                MessageHelper.Color("Going back to Main Menu!", ConsoleColor.Green);
                                Thread.Sleep(2000);
                                manageAccaount = false;
                                break;
                            }
                        }
                        break;

                    case 4:
                        _user = null;
                        MessageHelper.Color("Thank you for using our application! Have a good day!", ConsoleColor.Green);
                        mainMenu = false;
                        break;
                    }
                }
            }
        }