public void Test_RemoveFeatListFromList_GoodResult()
        {
            Feat        objFeat            = new Feat();
            List <Feat> objRemoveFeats     = new List <Feat>();
            List <Feat> objFeats           = new List <Feat>();
            int         intTotalFeatsCount = 0;

            objFeats           = objFeat.GetFeats("FeatID IN (1,2)", "");
            intTotalFeatsCount = objFeats.Count;

            objRemoveFeats = objFeat.GetFeats("FeatID IN (1)", "");

            objFeats = Feat.RemoveFeatListFromList(objRemoveFeats, objFeats);

            Assert.AreEqual(intTotalFeatsCount, objFeats.Count + 1);
        }
        public void LoadTreeView()
        {
            tvFeatList.Nodes.Clear();

            List <Feat> lstFeats = new List <Feat>();
            Feat        objFeat  = new Feat();

            switch (enmFeatType)
            {
            case Common.FeatType.BonusFeat:
                lstFeats = Feat.RemoveFeatListFromList(objCALC.objCharacter.lstFeats, objFeat.GetBonusFeatsForClass(objCALC.objSelectedClass));
                break;

            case Common.FeatType.LevelFeat:
                if (ckbRemoveBonusFeats.Checked)
                {
                    //Remove bonus feats from list of all feats
                    lstFeats = Feat.RemoveFeatListFromList(objFeat.GetBonusFeatsForClass(objCALC.objSelectedClass), Feat.GetAllFeatsCharacterQualifedFor(objCALC.objCharacter));
                }
                else
                {
                    lstFeats = Feat.GetAllFeatsCharacterQualifedFor(objCALC.objCharacter);
                }
                break;

            case Common.FeatType.StartingFeat:
                lstFeats = Feat.RemoveFeatListFromList(objCALC.objCharacter.lstFeats, objFeat.GetStartingFeats(objCALC.objSelectedClass.ClassID));
                break;

            case Common.FeatType.RaceFeat:
                if (ckbRemoveBonusFeats.Checked)
                {
                    //Remove bonus feats from list of all feats
                    lstFeats = Feat.RemoveFeatListFromList(objFeat.GetBonusFeatsForClass(objCALC.objSelectedClass), Feat.GetAllFeatsCharacterQualifedFor(objCALC.objCharacter));
                }
                else
                {
                    lstFeats = Feat.GetAllFeatsCharacterQualifedFor(objCALC.objCharacter);
                }
                break;

            default:
                break;
            }

            //if (enmFeatType == Common.FeatType.BonusFeat)
            //{
            //    lstFeats = Feat.RemoveFeatListFromList(objCALC.objCharacter.objFeats, objFeat.GetBonusFeatsForClass(objCALC.objSelectedClass));
            //}
            //else
            //{
            //    if (ckbRemoveBonusFeats.Checked )
            //    {
            //        //Remove bonus feats from list of all feats
            //        lstFeats = Feat.RemoveFeatListFromList(objFeat.GetBonusFeatsForClass(objCALC.objSelectedClass), Feat.GetAllFeatsCharacterQualifedFor(objCALC.objCharacter));
            //    }
            //    else
            //    {
            //        lstFeats = Feat.GetAllFeatsCharacterQualifedFor(objCALC.objCharacter);
            //    }
            //}

            foreach (Feat objListFeat in lstFeats)
            {
                TreeNode objTN = new TreeNode();
                objTN.Text = objListFeat.FeatName;
                objTN.Tag  = objListFeat.FeatID;
                tvFeatList.Nodes.Add(objTN);
            }
        }