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(); }
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)); } }
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(); } }
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; } } } }
public void AddExercisingActivity(Exercising exercising) { _exercisingActivityDb.InsertActivity(exercising); }
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; } } } }