private void LoadConfiguration(ConfigureEventArgs cpea)
        {
            var databaseFileNode = (XmlElement)cpea.Document.SelectSingleNode("//cherryTomato/databaseFile");
            if (databaseFileNode != null)
            {
                this.databaseFilename = databaseFileNode.GetAttribute("path");
            }

            this.connection = new DatabaseConnection(this.databaseFilename);
            var ea = new ConnectToDbEventArgs(this.connection);
            this.connectToDbEvent.Fire(ea);
        }
        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);
        }
 public DatabaseTest()
 {
     var r = DateTime.Now.Ticks;
     var testDatabaseFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\test_" + r + ".sqlite";
     dbCon = new DatabaseConnection(testDatabaseFile);
 }
 public ConnectToDbEventArgs(DatabaseConnection dbConnection)
 {
     this.DbConnection = dbConnection;
 }
        public void ConnectToDatabase(DatabaseConnection newDatabaseConnection)
        {
            this.pluginStarted = this.Now;
            this.databaseConnection = newDatabaseConnection;

            if (!this.databaseConnection.TableExists("PomodoroRegistrations"))
            {
                this.databaseConnection.ExecuteNonQuery(
                    "create table PomodoroRegistrations (TimeStamp datetime not null, Duration integer not null, Evaluation int not null);");
            }

            this.ReadAllPomodoros();

            var todayStart = this.Now.Date;
            var todayPomodoros = this.allRegisteredPomodoros.Where(p => p.Start >= todayStart);
            this.TodayProductivity = new PomodorosProductivity(todayPomodoros);

            this.addNewTriggerCommand.Do(new TimeTriggerCommandArgs(
                "Noon Crossed",
                TriggerUtils.MakeDailyTrigger(0, 0), // fired on every noon
                () => this.SetPomodorosToday(new PomodorosProductivity()))); // reset pomodoro counts for today
        }