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; } } }
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); }
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; } } }
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]); } }
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); }
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; } } }