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();
        }
Beispiel #2
0
        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
        }