예제 #1
0
        /// <summary>
        /// Writing into the Rules database.
        /// There window does not let the user input parameters that i don't want him too.
        /// There are minimal checks in code for duplicate rules because the checks are part of the database.
        /// NOTE FOR THE FUTURE - should place this under a try - exception clause.
        ///
        /// after writing the rule into the database, have to update the Tagger functions.
        /// </summary>
        /// <param name="obj"></param>
        public void AddRule(object obj)
        {
            if (addRuleView.tagsComboBox.SelectedItem.Equals(tagViewModel.Tags[0]))
            {
                MessageBox.Show("Can't add rules to Computer time!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                string   ruleParameter = "";
                string   ruleOpertor   = "";
                string   ruleConstant  = addRuleView.constantTextBox.Text;
                TagModel selectedTag   = (TagModel)addRuleView.tagsComboBox.SelectedItem;
                switch (addRuleView.ruleParamters.Text)
                {
                case "":
                    //bad things
                    break;

                case "Foreground Window Name":
                    ruleParameter = "FGWindowName";
                    break;

                case "Foreground Process Name":
                    ruleParameter = "FGProcessName";
                    break;
                }
                if (addRuleView.ruleOperators.Text.Equals("Every thing else"))
                {
                    ruleOpertor  = RuleModel.everythingElseRuleString;
                    ruleConstant = RuleModel.everythingElseRuleString;
                }
                else
                {
                    ruleOpertor = addRuleView.ruleOperators.Text;
                }
                RuleModel newRule = new RuleModel(0, ruleParameter, ruleOpertor, ruleConstant, selectedTag.TagID);
                SqliteDataAccess.saveRule(newRule);
                UpdateRuleList(Tagger.BuildRules());
                addRuleView.Close();
            }
        }
예제 #2
0
 /// <summary>
 /// When deleting a rule, we have to remove its function from the tagger.
 /// Note that after deleting the rule we update the tagger.
 /// </summary>
 /// <param name="obj"></param>
 public void DeleteRule(object obj)
 {
     if (deleteRuleWindow.RuleTagData.SelectedItem == null)
     {
         MessageBox.Show("Can't delete nothing :)", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
     }
     else
     {
         var       selected     = (RuleTagModel)deleteRuleWindow.RuleTagData.SelectedItem;
         var       query        = from rules in _rules where rules.RowId == selected.RuleId select rules;
         RuleModel selectedRule = null;
         foreach (var r in query)
         {
             selectedRule = r;
         }
         SqliteDataAccess.DeleteRule(selectedRule);
         _rules.Remove(selectedRule);
         ruleTag.Remove(selected);
         UpdateRuleList(Tagger.BuildRules());
         deleteRuleWindow.RuleTagData.Items.Refresh();
     }
 }
예제 #3
0
 private void TagViewModel_TagDeleted(object sender, EventArgs e)
 {
     UpdateRuleList(Tagger.BuildRules());
 }