public void ConnectToDatabase(DatabaseConnection newDatabaseConnection) { databaseConnection = newDatabaseConnection; var today = (DateTime)this.getCurrentTime.Do(null); var twoMonthsAgo = new DateTime(today.Year, today.Month, 1).AddMonths(-1); var recentPomodoros = databaseConnection.ExecuteReader( "select * from PomodoroRegistrations where TimeStamp >= @p1", twoMonthsAgo); foreach (DataRow r in recentPomodoros.Rows) { var date = Convert.ToDateTime(r["TimeStamp"]).Date; if (!productivityIndices.ContainsKey(date)) { productivityIndices[date] = new PomodorosProductivity(); } productivityIndices[date].Pomodoros++; var rating = Convert.ToInt32(r["Evaluation"]); productivityIndices[date].Rating += rating; } this.form.SetProductivityIndices(productivityIndices); }
// If you have TestDriven.Net, you can just right-click inside this function and select Run Test in order to test the dashboard. public void Test() { var day = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1); var r = new Random(); while (day <= DateTime.Today) { var pc = r.Next(8) + 1; if (day.DayOfWeek == DayOfWeek.Saturday || day.DayOfWeek == DayOfWeek.Sunday) { if (r.Next(6) == 0) { pc = r.Next(2) + 1; } else // Most weekends we didn't do any work.. { pc = 0; } } var pi = pc * (r.Next(10) + 1); productivityIndices[day] = new PomodorosProductivity(pc, pi); day = day.AddDays(1); } this.form.SetProductivityIndices(productivityIndices); this.form.statusLabel.Text = "Out of pomodoro for 3 minutes"; this.form.ShowInTaskbar = true; this.form.ControlBox = true; // Add the close button so we can stop the test.. this.form.ShowDialog(); }
public void SetPomodorosToday(PomodorosProductivity productivity) { var today = DateTime.Today; if (!productivityIndices.ContainsKey(today)) { productivityIndices[today] = new PomodorosProductivity(); } productivityIndices[today].Pomodoros = productivity.Pomodoros; productivityIndices[today].Rating = productivity.Rating; this.form.UpdateControl(() => { if (this.form.Handle != IntPtr.Zero) { this.form.Invalidate(true); } }); }