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 void InsertOtherHobbies(OtherHobbies otherHobbie) { _otherHobbiesDb.InsertActivity(otherHobbie); }
public void Tracking(ActivityType activity, User user) { switch (activity) { case ActivityType.Reading: var reading = new Reading(); reading.TrackTimeSpendDoingActivity(); user.TotalHoursReading.Add(reading.TRackedTime.TotalSeconds); Console.WriteLine("What kind of book did you read"); reading.BookType = (BookType)menus.ShowReadingTypes(); var readlino = Console.ReadLine(); user.FavoriteTypeBook.Add(readlino); Console.WriteLine("And how many pages:"); reading.Pages = int.Parse(Console.ReadLine()); user.Activities.Add(reading); _userDb.UpdateUser(user); Console.WriteLine("Added..."); Console.ReadLine(); Console.Clear(); break; case ActivityType.Puzzles: var puzzles = new Puzzles(); puzzles.TrackTimeSpendDoingActivity(); user.TotalHoursPuzzles.Add(puzzles.TRackedTime.TotalSeconds); Console.WriteLine("What kind of Puzzle did you do?"); puzzles.PuzzlesType = (PuzzlesType)menus.ShowPuzzlesTypes(); var readlines = Console.ReadLine(); user.FavoriteTypePuzzle.Add(readlines); user.Activities.Add(puzzles); _userDb.UpdateUser(user); Console.WriteLine("Your information has been added to your statistics!"); Console.ReadLine(); Console.Clear(); break; case ActivityType.Watching: var watching = new Watching(); watching.TrackTimeSpendDoingActivity(); user.TotalHoursWatching.Add(watching.TRackedTime.TotalSeconds); Console.WriteLine("What were you watching?"); watching.WatchingType = (WatchingType)menus.ShowWatchingTypes(); var readline = Console.ReadLine(); user.FavoriteTypToWatch.Add(readline); user.Activities.Add(watching); _userDb.UpdateUser(user); Console.WriteLine("Your information has been added to your statistics!"); Console.Clear(); break; case ActivityType.OtherHobbies: var otherhobbies = new OtherHobbies(); otherhobbies.TrackTimeSpendDoingActivity(); user.TotalHoursOtherHobbies.Add(otherhobbies.TRackedTime.TotalSeconds); Console.WriteLine("Please enter what hobby were you doing"); otherhobbies.Hobby = Console.ReadLine(); user.Activities.Add(otherhobbies); _userDb.UpdateUser(user); Console.WriteLine("Your information has been added to your statistics!"); Console.ReadLine(); Console.Clear(); break; default: break; } }
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; } } } }