Example #1
0
        /// <summary>
        /// Populates the configuration database with default values.
        /// </summary>
        public void ResetConfig()
        {
            using (var conn = new SQLiteConnection(connString)) {
                conn.Open();
                using (var trans = conn.BeginTransaction()) {
                    // IGNORES
                    var sql = "CREATE TABLE Ignores (Pattern TEXT UNIQUE)";
                    var cmd = new SQLiteCommand(sql, conn);
                    cmd.ExecuteNonQuery();
                    sql = "INSERT INTO Ignores VALUES(@Pattern)";
                    cmd = new SQLiteCommand(sql, conn);
                    var param = new SQLiteParameter("Pattern");
                    cmd.Parameters.Add(param);
                    foreach (var s in DefaultIgnoreDirs)
                    {
                        param.Value = s;
                        cmd.ExecuteNonQuery();
                    }

                    // ROOTS
                    sql = "CREATE TABLE Roots (Root TEXT UNIQUE)";
                    cmd = new SQLiteCommand(sql, conn);
                    cmd.ExecuteNonQuery();
                    sql   = "INSERT INTO Roots VALUES(@Root)";
                    cmd   = new SQLiteCommand(sql, conn);
                    param = new SQLiteParameter("Root");
                    cmd.Parameters.Add(param);
                    foreach (var s in DefaultRoots)
                    {
                        param.Value = s;
                        cmd.ExecuteNonQuery();
                    }

                    // OTHER
                    otherOpts = new OtherOpts();
                    sql       = "CREATE TABLE Other (Port INTEGER, UpdateDelay INTEGER)";
                    cmd       = new SQLiteCommand(sql, conn);
                    cmd.ExecuteNonQuery();
                    sql = "INSERT INTO Other (Port, UpdateDelay) VALUES(@Port, @UpdateDelay)";
                    cmd = new SQLiteCommand(sql, conn);
                    cmd.Parameters.Add(new SQLiteParameter("Port", otherOpts.Port));
                    cmd.Parameters.Add(new SQLiteParameter("UpdateDelay", otherOpts.UpdateDelay));
                    cmd.ExecuteNonQuery();

                    trans.Commit();
                }
            }
        }
Example #2
0
        private void SetOtherOptions(OtherOpts newOpts)
        {
            if (newOpts.Port == otherOpts.Port && newOpts.UpdateDelay == otherOpts.UpdateDelay)
            {
                return;
            }
            otherOpts = newOpts;
            using (var conn = new SQLiteConnection(connString)) {
                conn.Open();
                using (var trans = conn.BeginTransaction()) {
                    const string sql = "UPDATE Other SET Port=@Port, UpdateDelay=@UpdateDelay";
                    var          cmd = new SQLiteCommand(sql, conn);
                    cmd.Parameters.Add(new SQLiteParameter("Port", otherOpts.Port));
                    cmd.Parameters.Add(new SQLiteParameter("UpdateDelay", otherOpts.UpdateDelay));
                    cmd.ExecuteNonQuery();

                    trans.Commit();
                }
            }
        }
Example #3
0
        private void CheckUpdateOtherOptions()
        {
            // Since nothing else SHOULD be in the database, we can be sure that optherOpts
            // is always up-to-date.
            if (otherOpts != null)
            {
                return;
            }
            using (var conn = new SQLiteConnection(connString)) {
                conn.Open();
                using (var trans = conn.BeginTransaction()) {
                    var sql    = "SELECT Port, UpdateDelay FROM Other";
                    var cmd    = new SQLiteCommand(sql, conn);
                    var reader = cmd.ExecuteReader();
                    reader.Read();
                    otherOpts = new OtherOpts {
                        Port        = Convert.ToInt32(reader["Port"]),
                        UpdateDelay = Convert.ToInt32(reader["UpdateDelay"])
                    };

                    trans.Commit();
                }
            }
        }
Example #4
0
            }                      // required because of the copy constructor

            // Copy constructor, because IClonable stinks
            public OtherOpts(OtherOpts copyFrom)
            {
                Port        = copyFrom.Port;
                UpdateDelay = copyFrom.UpdateDelay;
            }