public static void Add() { #region --- Get Activities --- Header(); var activities = DbHelper.Activities(); activities.ForEach(c => Console.WriteLine($"[{c.Id}] {c.ActivityDescription}")); WriterHelper.RedText("=", 119); Console.Write("Select A Category: "); var option1 = Console.ReadLine(); var step1 = Convert.ToInt32(option1); var selectedCategory = activities.FirstOrDefault(c => c.Id == step1); if (step1 == 0) { Shared.MainMenu(); } var dates = DbHelper.CalendarDates(); #endregion #region --- Get Date --- Header(); dates.ForEach(d => Console.WriteLine($"[{d.Id}] {d.FormattedDate()}")); WriterHelper.RedText("=", 119); Console.Write("Select A Date: "); var option2 = Console.ReadLine(); var step2 = Convert.ToInt32(option2); var selectedDate = dates.FirstOrDefault(d => d.Id == step2); if (step2 == 0) { Shared.MainMenu(); } #endregion #region --- Get Time Spent --- Header(); var timeOfActivities = DbHelper.TimeOfActivities(); timeOfActivities.ForEach(toa => Console.WriteLine($"[{toa.Id}] {toa.TimeSpentOnActivity}")); WriterHelper.RedText("=", 119); Console.Write("How Long Did You Perform That Activity?: "); var option3 = Console.ReadLine(); var step3 = Convert.ToInt32(option3); var selectedTime = timeOfActivities.FirstOrDefault(s => s.Id == step3); #endregion // insert row in database var result = ActivityHelper.LogActivity(selectedCategory, selectedDate, selectedTime); if (result > 0) { PersistenceData.TempMessage = "Your activity has successfully been added!"; } else { PersistenceData.TempMessage = "Something went wrong..."; } Shared.Welcome(); }
public static void ViewByDescription() { var user = PersistenceData.ActiveUser; var selected = default(int); Console.Clear(); Shared.Header(); Console.WriteLine("View By Description: \n"); Console.WriteLine("[0] Exit"); WriterHelper.RedText("=", 119); #region --- Get Activities --- var descriptions = DbHelper.Activities(); descriptions.ForEach(c => Console.WriteLine($"[{c.Id}] {c.ActivityDescription}")); WriterHelper.RedText("=", 119); Console.Write("Select Description: "); selected = Convert.ToInt32(Console.ReadLine()); if (selected == 0) { ViewByMenu(selected); } var selectedActivity = descriptions.First(d => d.Id == selected); #endregion #region --- View By Description --- Console.Clear(); Header(); Console.WriteLine($"Description: {selectedActivity.ActivityDescription.ToUpper()}:\n"); Console.WriteLine(WindowTitle.VIEW_BY_DESCRIPTION); WriterHelper.WhiteText("-", 119); var viewby = DbHelper.ViewBy(); var row = 1; var total = default(decimal); var summary = viewby .Where(c => c.UserId == user.Id) .Where(c1 => c1.ActivityDescriptionId == selectedActivity.Id) .Select(a => new { Date = a.CalendarDate.ToString("dd MMMM yyyy"), Activity = a.ActivityDescription, TimeSpent = a.TimeSpentOnActivity }); if (summary.Any()) { summary.ToList().ForEach(r => { var index = row++.ToString().PadLeft(2, ' '); total += r.TimeSpent; Console.WriteLine( $"[{index}] {r.Date.PadRight(22, ' ')} {r.Activity.PadRight(43, ' ')} {r.TimeSpent}"); }); } else { Console.WriteLine("No data found for the selected description"); } WriterHelper.WhiteText("-", 119); Console.WriteLine($"Activity {selectedActivity.ActivityDescription} Total: {total} hours"); WriterHelper.RedText("=", 119); Console.Write("Selection: "); selected = Convert.ToInt32(Console.ReadLine()); ViewByMenu(selected); #endregion }