예제 #1
0
        internal override void Plus(XDocument xdoc)
        {
            foreach (var element in xdoc.Root.Elements())
            {
                var val = element.Value;
                int valI;
                int.TryParse(val, out valI);

                switch (element.Name.LocalName)
                {
                case "id":
                case "type":
                    break;

                case "figures":
                    if (!HfIds.Contains(valI))
                    {
                        HfIds.Add(valI);
                    }
                    break;

                default:
                    DFXMLParser.UnexpectedXmlElement(xdoc.Root.Name.LocalName + "\t" + Types[Type], element, xdoc.Root.ToString());
                    break;
                }
            }
        }
예제 #2
0
        internal override void Export(string table)
        {
            base.Export(table);

            table = GetType().Name;

            var vals = new List <object>
            {
                Id,
                HfIds.DBExport(),
                SiteId.DBExport(),
                SubregionId.DBExport(),
                FeatureLayerId.DBExport(),
                Coords.DBExport()
            };

            if (Pets != null)
            {
                var petExport = Pets.Aggregate("", (current, petRace) => current + (petRace.ToString() + ","));
                petExport = petExport.TrimEnd(',');
                vals.Add(petExport);
            }
            else
            {
                vals.Add(DBNull.Value);
            }

            Database.ExportWorldItem(table, vals);
        }
예제 #3
0
        public HE_HFNewPet(XDocument xdoc, World world)
            : base(xdoc, world)
        {
            foreach (var element in xdoc.Root.Elements())
            {
                var val = element.Value;
                int valI;
                int.TryParse(val, out valI);

                switch (element.Name.LocalName)
                {
                case "id":
                case "year":
                case "seconds72":
                case "type":
                    break;

                case "site_id":
                    if (valI != -1)
                    {
                        SiteId = valI;
                    }
                    break;

                case "subregion_id":
                    if (valI != -1)
                    {
                        SubregionId = valI;
                    }
                    break;

                case "feature_layer_id":
                    if (valI != -1)
                    {
                        FeatureLayerId = valI;
                    }
                    break;

                case "coords":
                    if (val != "-1,-1")
                    {
                        Coords = new Point(Convert.ToInt32(val.Split(',')[0]), Convert.ToInt32(val.Split(',')[1]));
                    }
                    break;

                case "group_hfid":
                    if (HfIds == null)
                    {
                        HfIds = new List <int>();
                    }
                    HfIds.Add(valI);
                    break;

                default:
                    DFXMLParser.UnexpectedXmlElement(xdoc.Root.Name.LocalName + "\t" + Types[Type], element, xdoc.Root.ToString());
                    break;
                }
            }
        }
예제 #4
0
 internal override void Link()
 {
     base.Link();
     if (HfIds == null)
     {
         return;
     }
     Hfs = new List <HistoricalFigure>();
     foreach (var group1Hfid in HfIds.Where(group1Hfid => World.HistoricalFigures.ContainsKey(group1Hfid)))
     {
         Hfs.Add(World.HistoricalFigures[group1Hfid]);
     }
 }
예제 #5
0
        internal override void Export(string table)
        {
            base.Export(table);

            table = GetType().Name;

            var vals = new List <object>
            {
                Id,
                HfIds.DBExport(),
                SubregionId.DBExport(),
                FeatureLayerId.DBExport(),
                Coords.DBExport()
            };

            Database.ExportWorldItem(table, vals);
        }
예제 #6
0
        internal override void Plus(XDocument xdoc)
        {
            foreach (var element in xdoc.Root.Elements())
            {
                var val = element.Value;
                int valI;
                int.TryParse(val, out valI);

                switch (element.Name.LocalName)
                {
                case "id":
                case "type":
                    break;

                case "group":
                    if (HfIds == null)
                    {
                        HfIds = new List <int>();
                    }
                    if (!HfIds.Contains(valI))
                    {
                        HfIds.Add(valI);
                    }
                    break;

                case "pets":
                    var race = World.GetAddRace(val);
                    if (Pets == null)
                    {
                        Pets = new List <Race>();
                    }
                    Pets.Add(race);
                    break;

                case "site":
                    break;

                default:
                    DFXMLParser.UnexpectedXmlElement(xdoc.Root.Name.LocalName + "\t" + Types[Type], element, xdoc.Root.ToString());
                    break;
                }
            }
        }