//Populates the dropdown list with the encounters
    private void populateEncounterDropdown()
    {
        EncountersTable encounterTable = new EncountersTable(new DatabaseConnection());
        DataSet         data           = encounterTable.getEncounters(game.GameID); //Call to database

        encounterDropDownList.DataSource     = data;
        encounterDropDownList.DataTextField  = "encounterName";
        encounterDropDownList.DataValueField = "encounterID";
        encounterDropDownList.DataBind();

        encounterDropDownList.Items.Insert(0, new ListItem("<Select Encounter>", "0"));
    }
    //Clears the server information, removes encounter and its monsters from the db, Response.Redirect back to same page to clear postback changes
    protected void deleteButton_Click(object sender, EventArgs e)
    {
        if (encounter.EncounterID != 0)
        {
            //Delete encounter information from database
            MonstersTable monstersTable = new MonstersTable(new DatabaseConnection());
            monstersTable.deleteEncounterMonsters(encounter.EncounterID);
            EncountersTable encountersTable = new EncountersTable(new DatabaseConnection());
            encountersTable.deleteEncounter(encounter.EncounterID);

            //Clear Content from Session Variable
            Session.Remove("savedContent");
        }

        //Reload page to clear any nonsense before loading
        Session["message"] = new Message("Encounter Deleted!", System.Drawing.Color.Green);
        Response.Redirect("EncounterTool");
    }
    protected void loadButton_Click(object sender, EventArgs e)
    {
        Int32.TryParse(encounterDropDownList.SelectedValue, out int encounterID);
        //use this to make an encounter and save to session variable

        EncountersTable encounterTable = new EncountersTable(new DatabaseConnection());

        encounter = encounterTable.getEncounter(encounterID);

        MonstersTable  monsterTable      = new MonstersTable(new DatabaseConnection());
        List <Monster> encounterMonsters = monsterTable.getEncounterMonsters(encounterID);

        encounter.Entities = new Dictionary <Entity, Color>();

        //Add to entities dictionary
        foreach (Monster monster in encounterMonsters)
        {
            Color color;
            if (monster.IsFriendly)
            {
                color = Color.LightGreen;
            }
            else
            {
                color = Color.LightSalmon;
            }
            encounter.Entities.Add(monster, color);
        }

        //Load party
        loadParty();

        //Save to savedContent
        Session["savedContent"] = encounter;
        Session["message"]      = new Message("Encounter Loaded!", System.Drawing.Color.Green);

        //Reload page to clear any nonsense before loading
        Response.Redirect("EncounterTool");
    }
    //Saves entities to the db
    protected void saveButton_Click(object sender, EventArgs e)
    {
        MonstersTable monstersTable = new MonstersTable(new DatabaseConnection());

        combatTable.saveContentChanges();
        encounter.Entities      = combatTable.getContent();
        Session["savedContent"] = encounter;

        //Fresh Encounter, needs creation first
        if (encounter.EncounterID == 0)
        {
            EncountersTable encountersTable = new EncountersTable(new DatabaseConnection());

            encounter.EncounterName = hiddenEncounterName.Value;          //Get name from js prompt.

            int encounterID = encountersTable.insertEncounter(encounter); //Make encounter in db and return id
            if (encounterID > 0)
            {
                encounter.EncounterID = encounterID;                    //If valid id, set encounterID
            }
            Session["savedContent"] = encounter;
        }

        //Foreach tableRow if its a monster, do the applicable database command (update/insert/delete) to mirror what the user has done in the table.
        foreach (ObjectTableRow objRow in combatTable.ObjectRows)
        {
            //Only care about Monsters
            if (objRow.Obj.GetType() == typeof(Monster))
            {
                Monster monster = (Monster)objRow.Obj;

                if (objRow.Visible == false)
                {
                    if (monster.MonsterID != 0)
                    {
                        monstersTable.deleteMonster(monster);                         //delete monster
                    }
                    encounter.Entities.Remove(monster);
                }
                else if (objRow.Visible == true && monster.MonsterID != 0)
                {
                    monstersTable.updateMonster(monster);                  //update monster
                }
                else if (objRow.Visible == true && monster.MonsterID == 0) //create monster
                {
                    if (monster.Encounter.EncounterID == 0)
                    {
                        monster.Encounter = encounter;
                    }
                    int monsterID = monstersTable.insertMonster(monster);
                    if (monsterID > 0)
                    {
                        monster.MonsterID = monsterID;
                    }
                    monster.EntityID = monstersTable.getMonsterEntityID(monster.MonsterID);
                }
            }
        }


        //Save to savedContent w/ new IDs
        Session["savedContent"] = encounter;
        Session["message"]      = new Message("Encounter Saved!", System.Drawing.Color.Green);

        //Reload page to clear any nonsense before loading
        Response.Redirect("EncounterTool");
    }