public CampaignVictoryConditionFactory()
        {
            CampaignVictoryConditions = new List<CampaignVictoryCondition>();
            ObjectiveTypeFactory = new ObjectiveTypeFactory();

            Uri uri = new Uri(Constants.CampaignVictoryConditionDataPath, UriKind.Relative);
            XElement applicationXml;
            StreamResourceInfo xmlStream = Application.GetResourceStream(uri);
            applicationXml = XElement.Load(xmlStream.Stream);
            var data = from t in applicationXml.Descendants("VictoryConditionCampaign")
                       select t;

            CampaignVictoryCondition campaignVictoryCondition = null;
            foreach (var d in data)
            {
                campaignVictoryCondition = new CampaignVictoryCondition();
                campaignVictoryCondition.CampaignVictoryConditionId = (Int32)d.Element("VictoryConditionCampaignId");
                campaignVictoryCondition.ScenarioId = ((Int32)d.Element("ScenarioId"));
                campaignVictoryCondition.ObjectiveType = ObjectiveTypeFactory.GetObjectiveType((Int32)d.Element("ObjectiveTypeId"));
                campaignVictoryCondition.MajorVictoryObjectviesToHold = (Int32)d.Element("MajorVictoryNumberOfObjectivesToHold");
                campaignVictoryCondition.MajorVictoryTurnsRemain = (Int32)d.Element("MajorVictoryTurnsRemain");
                campaignVictoryCondition.MinorVictoryObjectviesToHold = (Int32)d.Element("MinorVictoryNumberOfObjectivesToHold");
                campaignVictoryCondition.MinorVactoryTurnsRemain = (Int32)d.Element("MinorVictoryTurnsRemain");
                CampaignVictoryConditions.Add(campaignVictoryCondition);
            }
        }
        public StandAloneVictoryConditionFactory()
        {
            StandAloneVictoryConditions = new List<StandAloneVictoryCondition>();
            ObjectiveTypeFactory = new ObjectiveTypeFactory();

            Uri uri = new Uri(Constants.StandAloneVictoryConditionDataPath, UriKind.Relative);
            XElement applicationXml;
            StreamResourceInfo xmlStream = Application.GetResourceStream(uri);
            applicationXml = XElement.Load(xmlStream.Stream);
            var data = from wz in applicationXml.Descendants("VictoryConditionStandAlone")
                       select wz;

            StandAloneVictoryCondition standAloneVictoryCondition = null;
            foreach (var d in data)
            {
                standAloneVictoryCondition = new StandAloneVictoryCondition();
                standAloneVictoryCondition.StandAloneVictoryConditionId = (Int32)d.Element("VictoryConditionStandAloneId");
                standAloneVictoryCondition.ScenarioId = (Int32)d.Element("ScenarioId");
                standAloneVictoryCondition.ObjectiveType = ObjectiveTypeFactory.GetObjectiveType((Int32)d.Element("ObjectiveTypeId"));
                standAloneVictoryCondition.WinAmount = (Int32)d.Element("WinAmount");
                standAloneVictoryCondition.LossAmount = (Int32)d.Element("LossAmount");
                StandAloneVictoryConditions.Add(standAloneVictoryCondition);
            }
        }