Esempio n. 1
0
        /// <summary>
        /// Checks if it is time to activate the snooze mode.
        /// </summary>
        /// <param name="options">The snooze options.</param>
        /// <returns>True, if the snooze mode should be activated, else false.</returns>
        /// <remarks>Documented by Dev02, 2008-05-06</remarks>
        internal bool CheckSnooze(ISnoozeOptions options)
        {
            if (CheckOptionsChanged(options))
            {
                ResetSnoozeValues();
            }

            if (options.SnoozeMode == ESnoozeMode.SendToTray || options.SnoozeMode == ESnoozeMode.QuitProgram)
            {
                //calculate differential values since last snooze
                TimeSpan time   = new TimeSpan();
                int      cards  = 0;
                int      rights = 0;

                foreach (StackCard card in this)
                {
                    if (lastSnoozeCard != null && card == lastSnoozeCard)
                    {
                        break;
                    }

                    time += card.Duration;
                    cards++;
                    if (card.Promoted)
                    {
                        rights += card.CardPoints;
                    }
                }

                //compare with settings
                if ((options.IsTimeEnabled.GetValueOrDefault() && time.Minutes >= options.SnoozeTime.GetValueOrDefault()) ||
                    (options.IsCardsEnabled.GetValueOrDefault() && cards >= options.SnoozeCards.GetValueOrDefault()) ||
                    (options.IsRightsEnabled.GetValueOrDefault() && rights >= options.SnoozeRights.GetValueOrDefault()))
                {
                    lastSnoozeCard = this.Peek(); //set snooze card
                    return(true);
                }
            }
            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// Checks the options changed.
        /// </summary>
        /// <param name="options">The options.</param>
        /// <returns></returns>
        /// <remarks>Documented by Dev02, 2009-04-09</remarks>
        private bool CheckOptionsChanged(ISnoozeOptions options)
        {
            bool changed = false;

            if (previousOptions != null)
            {
                if (!Methods.IsEqual <bool?>(options.IsCardsEnabled, previousOptions.IsCardsEnabled) ||
                    !Methods.IsEqual <bool?>(options.IsRightsEnabled, previousOptions.IsRightsEnabled) ||
                    !Methods.IsEqual <bool?>(options.IsTimeEnabled, previousOptions.IsTimeEnabled))
                {
                    changed = true;
                }

                if (!Methods.IsEqual <int?>(options.SnoozeCards, previousOptions.SnoozeCards) ||
                    !Methods.IsEqual <int?>(options.SnoozeHigh, previousOptions.SnoozeHigh) ||
                    !Methods.IsEqual <int?>(options.SnoozeLow, previousOptions.SnoozeLow) ||
                    !Methods.IsEqual <ESnoozeMode?>(options.SnoozeMode, previousOptions.SnoozeMode) ||
                    !Methods.IsEqual <int?>(options.SnoozeRights, previousOptions.SnoozeRights) ||
                    !Methods.IsEqual <int?>(options.SnoozeTime, previousOptions.SnoozeTime))
                {
                    changed = true;
                }
            }

            foreach (PropertyInfo property in typeof(ISnoozeOptions).GetProperties())
            {
                if (property.CanRead && property.CanWrite)
                {
                    object obj = property.GetValue(options, null);
                    if (obj != null)
                    {
                        property.SetValue(previousOptions, obj, null);
                    }
                }
            }

            return(changed);
        }
Esempio n. 3
0
 public SnoozeOptions(ISnoozeOptions defaultSettings, ISnoozeOptions userSettings)
 {
     this.defaultSettings = defaultSettings;
     this.userSettings = userSettings;
 }
Esempio n. 4
0
        /// <summary>
        /// Sets the snooze options.
        /// </summary>
        /// <param name="id">The id.</param>
        /// <param name="SnoozeOptions">The snooze options.</param>
        /// <remarks>Documented by Dev11, 2008-08-14</remarks>
        public void SetSnoozeOptions(int id, ISnoozeOptions SnoozeOptions)
        {
            using (NpgsqlConnection con = PostgreSQLConn.CreateConnection(Parent.CurrentUser))
            {
                using (NpgsqlCommand cmd = con.CreateCommand())
                {
                    cmd.CommandText = "SELECT snooze_options FROM \"Settings\" WHERE id=:id";
                    cmd.Parameters.Add("id", id);

                    int soid = Convert.ToInt32(PostgreSQLConn.ExecuteScalar(cmd, Parent.CurrentUser));

                    if (soid > 0)
                    {
                        using (NpgsqlCommand cmd2 = con.CreateCommand())
                        {
                            cmd2.CommandText = "UPDATE \"SnoozeOptions\" SET " +
                                "cards_enabled=:c_e, rights_enabled=:r_e, time_enabled=:t_e, snooze_cards=:s_c, snooze_hight=:s_h, snooze_low=:s_l, " +
                                "snooze_mode=:s_m, snooze_rights=:s_r, snooze_time=:s_t WHERE id=:id";
                            cmd2.Parameters.Add("id", soid);
                            cmd2.Parameters.Add("c_e", SnoozeOptions.IsCardsEnabled);
                            cmd2.Parameters.Add("r_e", SnoozeOptions.IsRightsEnabled);
                            cmd2.Parameters.Add("t_e", SnoozeOptions.IsTimeEnabled);
                            cmd2.Parameters.Add("s_c", SnoozeOptions.SnoozeCards);
                            cmd2.Parameters.Add("s_h", SnoozeOptions.SnoozeHigh);
                            cmd2.Parameters.Add("s_l", SnoozeOptions.SnoozeLow);
                            cmd2.Parameters.Add("s_m", SnoozeOptions.SnoozeMode);
                            cmd2.Parameters.Add("s_r", SnoozeOptions.SnoozeRights);
                            cmd2.Parameters.Add("s_t", SnoozeOptions.SnoozeTime);

                            PostgreSQLConn.ExecuteNonQuery(cmd2, Parent.CurrentUser);

                            //Save to Cache
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeOptionsFk, id, Cache.DefaultSettingsValidationTime)] = soid;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeCardsEnabled, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsCardsEnabled;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeRightsEnabled, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsRightsEnabled;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeTimeEnabled, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsTimeEnabled;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeCards, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeCards;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeHigh, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeHigh;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeLow, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeLow;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeMode, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeMode;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeRights, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeRights;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeTime, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeTime;
                        }
                    }
                    else
                    {
                        using (NpgsqlCommand cmd3 = con.CreateCommand())
                        {
                            cmd3.CommandText = "INSERT INTO \"SnoozeOptions\" " +
                                "(cards_enabled, rights_enabled, time_enabled, snooze_cards, snooze_hight, snooze_low, snooze_mode, snooze_rights, snooze_time) VALUES " +
                                "(:c_e, :r_e, :t_e, :s_c, :s_h, :s_l, :s_m, :s_r, :s_t); UPDATE \"Settings\" SET snooze_options=currval('\"SnoozeOptions_id_seq\"') WHERE id=:id; " +
                                "SELECT snooze_options FROM \"Settings\" WHERE id=:id";
                            cmd3.Parameters.Add("id", id);
                            cmd3.Parameters.Add("c_e", SnoozeOptions.IsCardsEnabled);
                            cmd3.Parameters.Add("r_e", SnoozeOptions.IsRightsEnabled);
                            cmd3.Parameters.Add("t_e", SnoozeOptions.IsTimeEnabled);
                            cmd3.Parameters.Add("s_c", SnoozeOptions.SnoozeCards);
                            cmd3.Parameters.Add("s_h", SnoozeOptions.SnoozeHigh);
                            cmd3.Parameters.Add("s_l", SnoozeOptions.SnoozeLow);
                            cmd3.Parameters.Add("s_m", SnoozeOptions.SnoozeMode);
                            cmd3.Parameters.Add("s_r", SnoozeOptions.SnoozeRights);
                            cmd3.Parameters.Add("s_t", SnoozeOptions.SnoozeTime);

                            //PostgreSQLConn.ExecuteNonQuery(cmd3);
                            int? snoozeOptionsId = PostgreSQLConn.ExecuteScalar<int>(cmd3, Parent.CurrentUser);

                            //Save to Cache
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeOptionsFk, id, Cache.DefaultSettingsValidationTime)] = snoozeOptionsId.Value;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeCardsEnabled, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsCardsEnabled;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeRightsEnabled, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsRightsEnabled;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeTimeEnabled, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsTimeEnabled;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeCards, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeCards;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeHigh, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeHigh;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeLow, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeLow;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeMode, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeMode;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeRights, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeRights;
                            Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeTime, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeTime;
                        }
                    }
                }
            }
        }
Esempio n. 5
0
 public SnoozeOptions(ISnoozeOptions defaultSettings, ISnoozeOptions userSettings)
 {
     this.defaultSettings = defaultSettings;
     this.userSettings    = userSettings;
 }
Esempio n. 6
0
        /// <summary>
        /// Sets the snooze options.
        /// </summary>
        /// <param name="id">The id.</param>
        /// <param name="SnoozeOptions">The snooze options.</param>
        /// <remarks>Documented by Dev05, 2009-01-15</remarks>
        public void SetSnoozeOptions(int id, ISnoozeOptions SnoozeOptions)
        {
            SqlCeCommand cmd = MSSQLCEConn.CreateCommand(Parent.CurrentUser);
            cmd.CommandText = "SELECT snooze_options FROM \"Settings\" WHERE id=@id";
            cmd.Parameters.Add("@id", id);

            int soid = Convert.ToInt32(MSSQLCEConn.ExecuteScalar(cmd));

            if (soid > 0)
            {
                SqlCeCommand cmd2 = MSSQLCEConn.CreateCommand(Parent.CurrentUser);
                cmd2.CommandText = "UPDATE \"SnoozeOptions\" SET " +
                    "cards_enabled=@c_e, rights_enabled=@r_e, time_enabled=@t_e, snooze_cards=@s_c, snooze_hight=@s_h, snooze_low=@s_l, " +
                    "snooze_mode=@s_m, snooze_rights=@s_r, snooze_time=@s_t WHERE id=@id";
                cmd2.Parameters.Add("@id", soid);
                cmd2.Parameters.Add("@c_e", SnoozeOptions.IsCardsEnabled);
                cmd2.Parameters.Add("@r_e", SnoozeOptions.IsRightsEnabled);
                cmd2.Parameters.Add("@t_e", SnoozeOptions.IsTimeEnabled);
                cmd2.Parameters.Add("@s_c", SnoozeOptions.SnoozeCards);
                cmd2.Parameters.Add("@s_h", SnoozeOptions.SnoozeHigh);
                cmd2.Parameters.Add("@s_l", SnoozeOptions.SnoozeLow);
                cmd2.Parameters.Add("@s_m", SnoozeOptions.SnoozeMode);
                cmd2.Parameters.Add("@s_r", SnoozeOptions.SnoozeRights);
                cmd2.Parameters.Add("@s_t", SnoozeOptions.SnoozeTime);

                MSSQLCEConn.ExecuteNonQuery(cmd2);

                //Save to Cache
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeOptionsFk, id, Cache.DefaultSettingsValidationTime)] = soid;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeCardsEnabled, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsCardsEnabled;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeRightsEnabled, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsRightsEnabled;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeTimeEnabled, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsTimeEnabled;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeCards, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeCards;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeHigh, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeHigh;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeLow, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeLow;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeMode, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeMode;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeRights, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeRights;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeTime, soid, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeTime;
            }
            else
            {
                SqlCeCommand cmd3 = MSSQLCEConn.CreateCommand(Parent.CurrentUser);
                cmd3.CommandText = "INSERT INTO \"SnoozeOptions\" " +
                    "(cards_enabled, rights_enabled, time_enabled, snooze_cards, snooze_hight, snooze_low, snooze_mode, snooze_rights, snooze_time) VALUES " +
                    "(@c_e, @r_e, @t_e, @s_c, @s_h, @s_l, @s_m, @s_r, @s_t); UPDATE \"Settings\" SET snooze_options=@@IDENTITY WHERE id=@id; " +
                    "SELECT snooze_options FROM \"Settings\" WHERE id=@id";
                cmd3.Parameters.Add("@id", id);
                cmd3.Parameters.Add("@c_e", SnoozeOptions.IsCardsEnabled);
                cmd3.Parameters.Add("@r_e", SnoozeOptions.IsRightsEnabled);
                cmd3.Parameters.Add("@t_e", SnoozeOptions.IsTimeEnabled);
                cmd3.Parameters.Add("@s_c", SnoozeOptions.SnoozeCards);
                cmd3.Parameters.Add("@s_h", SnoozeOptions.SnoozeHigh);
                cmd3.Parameters.Add("@s_l", SnoozeOptions.SnoozeLow);
                cmd3.Parameters.Add("@s_m", SnoozeOptions.SnoozeMode);
                cmd3.Parameters.Add("@s_r", SnoozeOptions.SnoozeRights);
                cmd3.Parameters.Add("@s_t", SnoozeOptions.SnoozeTime);

                //MSSQLCEConn.ExecuteNonQuery(cmd3);
                int? snoozeOptionsId = MSSQLCEConn.ExecuteScalar<int>(cmd3);

                //Save to Cache
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeOptionsFk, id, Cache.DefaultSettingsValidationTime)] = snoozeOptionsId.Value;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeCardsEnabled, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsCardsEnabled;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeRightsEnabled, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsRightsEnabled;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeTimeEnabled, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.IsTimeEnabled;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeCards, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeCards;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeHigh, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeHigh;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeLow, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeLow;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeMode, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeMode;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeRights, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeRights;
                Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.SettingsSnoozeTime, snoozeOptionsId.Value, Cache.DefaultSettingsValidationTime)] = SnoozeOptions.SnoozeTime;
            }
        }