示例#1
0
        public int GetSpecialRuleID(SpecialRulesInstance specRule)
        {
            int ruleID = 0;

            connection = dBControl.getConnection();
            MySqlDataReader dataReader;

            connection.Open();

            using (MySqlCommand cmd = new MySqlCommand("SELECT rule_id FROM Special_Rules WHERE rule = @ruleText", connection))
            {
                cmd.Parameters.AddWithValue("@ruleText", specRule.Rule);

                dataReader = cmd.ExecuteReader();

                while (dataReader.Read())
                {
                    ruleID = dataReader.GetInt16(0);
                    Console.WriteLine("The ID for this Rule is " + ruleID);
                }
                connection.Close();
            }

            return(ruleID);
        }
示例#2
0
        public List <SpecialRulesInstance> GetSpecialRules(int charid)
        {
            Console.WriteLine("Hello From " + Thread.CurrentThread.Name);
            List <SpecialRulesInstance> specialRules = new List <SpecialRulesInstance>();

            MySqlConnection specialRulesConnection;
            MySqlDataReader dataReader;

            specialRulesConnection = dBControl.getConnection();

            specialRulesConnection.Open();

            using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM SpecialRuleView WHERE char_id = @charID", specialRulesConnection))
            {
                cmd.Parameters.AddWithValue("@charID", charid);

                dataReader = cmd.ExecuteReader();

                while (dataReader.Read())
                {
                    SpecialRulesInstance newRule = new SpecialRulesInstance(dataReader.GetInt16(1), dataReader.GetString(3), dataReader.GetInt16(4));

                    specialRules.Add(newRule);
                }
            }

            specialRulesConnection.Close();

            Console.WriteLine("Goodbye From " + Thread.CurrentThread.Name);

            return(specialRules);
        }
示例#3
0
        private void ChangeAmountButton_Click(object sender, EventArgs e)
        {
            SpecialRulesInstance ruleEdit = (SpecialRulesInstance)specRulesListBox.SelectedItem;

            ruleEdit.Amount                = (int)specRuleAmountCounter.Value;
            specRulesListBox.DataSource    = null;
            specRulesListBox.DataSource    = newCharacter.SpecialRules;
            specRulesListBox.DisplayMember = "fullString";
        }
示例#4
0
        private void DeleteButton_Click(object sender, EventArgs e)
        {
            SpecialRulesInstance specRuleToRemove = (SpecialRulesInstance)specRulesListBox.SelectedItem;

            newCharacter.RemoveSpecialRule(specRuleToRemove);
            specRulesListBox.DataSource    = null;
            specRulesListBox.DataSource    = newCharacter.SpecialRules;
            specRulesListBox.DisplayMember = "fullString";
        }
示例#5
0
        private void RemoveSpecRuleButton_Click(object sender, EventArgs e)
        {
            SpecialRulesInstance ruleToDelete = (SpecialRulesInstance)specRuleListBox.SelectedItem;

            selectedCharacter.RemoveSpecialRule(ruleToDelete);
            charController.DeleteSpecialRulesInstance(ruleToDelete, selectedCharacter.CharID);
            specRuleListBox.DataSource    = null;
            specRuleListBox.DataSource    = selectedCharacter.SpecialRules;
            specRuleListBox.DisplayMember = "fullString";
        }
示例#6
0
        private void UpdateSpecRuleNumber_Click(object sender, EventArgs e)
        {
            SpecialRulesInstance ruleAmountToEdit = (SpecialRulesInstance)specRuleListBox.SelectedItem;

            ruleAmountToEdit.Amount = (int)specRuleAmountBox.Value;
            ruleAmountToEdit.RuleID = charController.GetSpecialRuleID(ruleAmountToEdit);
            Console.WriteLine("Updating Rule ID no " + ruleAmountToEdit.RuleID);
            charController.UpdateSpecialRuleInstance(ruleAmountToEdit, selectedCharacter.CharID);
            specRuleListBox.DataSource    = null;
            specRuleListBox.DataSource    = selectedCharacter.SpecialRules;
            specRuleListBox.DisplayMember = "fullString";
        }
示例#7
0
        private void AddSpecRuleButton_Click(object sender, EventArgs e)
        {
            SpecialRulesInstance newSpecRule  = new SpecialRulesInstance();
            SpecialRule          basicNewRule = (SpecialRule)specRuleCombo.SelectedItem;

            newSpecRule.RuleID = basicNewRule.RuleID;
            newSpecRule.Rule   = basicNewRule.Rule;
            newSpecRule.Amount = (int)specRuleAmountCounter.Value;
            newCharacter.AddSpecialRule(newSpecRule);
            specRulesListBox.DataSource    = null;
            specRulesListBox.DataSource    = newCharacter.SpecialRules;
            specRulesListBox.DisplayMember = "fullString";
        }
示例#8
0
        private void AddNewRuleButton_Click(object sender, EventArgs e)
        {
            SpecialRulesInstance ruleToAdd = new SpecialRulesInstance();
            SpecialRule          ruleText  = (SpecialRule)specRuleCombo.SelectedItem;

            ruleToAdd.Rule   = ruleText.Rule;
            ruleToAdd.RuleID = ruleText.RuleID;
            ruleToAdd.Amount = (int)specRuleAmountBox.Value;
            selectedCharacter.AddSpecialRule(ruleToAdd);
            charController.InsertSpecialRuleInstance(ruleToAdd, selectedCharacter.CharID);
            specRuleListBox.DataSource    = null;
            specRuleListBox.DataSource    = selectedCharacter.SpecialRules;
            specRuleListBox.DisplayMember = "fullString";
        }
示例#9
0
        public void UpdateSpecialRuleInstance(SpecialRulesInstance ruleToUpdate, int charID)
        {
            connection = dBControl.getConnection();
            connection.Open();

            using (MySqlCommand cmd = new MySqlCommand("UPDATE Special_Rule_Instances SET amount = @amount WHERE rule_id = @ruleID AND character_id = @charID", connection))
            {
                cmd.Parameters.AddWithValue("@amount", ruleToUpdate.Amount);
                cmd.Parameters.AddWithValue("@ruleID", ruleToUpdate.RuleID);
                cmd.Parameters.AddWithValue("@charID", charID);

                int rows = cmd.ExecuteNonQuery();
                Console.WriteLine("Updated " + rows + " Lines");
                connection.Close();
            }
        }
示例#10
0
        public void InsertSpecialRuleInstance(SpecialRulesInstance ruleToInsert, int charID)
        {
            connection = dBControl.getConnection();
            connection.Open();

            using (MySqlCommand cmd = new MySqlCommand("INSERT INTO Special_Rule_Instances (rule_id, character_id, amount) VALUES(@ruleId, " +
                                                       "@charID, @amount)", connection))
            {
                cmd.Parameters.AddWithValue("@ruleId", ruleToInsert.RuleID);
                cmd.Parameters.AddWithValue("@charID", charID);
                cmd.Parameters.AddWithValue("@amount", ruleToInsert.Amount);

                int rows = cmd.ExecuteNonQuery();
                connection.Close();
            }
        }
示例#11
0
        public void DeleteSpecialRulesInstance(SpecialRulesInstance ruleToDelete, int charID)
        {
            ruleToDelete.RuleID = GetSpecialRuleID(ruleToDelete);
            connection          = dBControl.getConnection();
            connection.Open();

            using (MySqlCommand cmd = new MySqlCommand("DELETE FROM Special_Rule_Instances WHERE rule_id = @ruleID AND character_id = @charID " +
                                                       "AND amount = @amount", connection))
            {
                Console.WriteLine("Deleting " + ruleToDelete.RuleID + " (" + ruleToDelete.Amount + ")" + " From " + charID);
                cmd.Parameters.AddWithValue("@ruleId", ruleToDelete.RuleID);
                cmd.Parameters.AddWithValue("@charID", charID);
                cmd.Parameters.AddWithValue("@amount", ruleToDelete.Amount);

                int rows = cmd.ExecuteNonQuery();
                Console.WriteLine("Deleted " + rows + " Lines");
                connection.Close();
            }
        }