void IXmlSerializable.ReadXml(XmlReader reader) { this.Id = reader.GetAttributeInt64("id"); this.Version = reader.GetAttributeInt64("version"); this.ChangeSetId = reader.GetAttributeInt64("changeset"); this.TimeStamp = reader.GetAttributeDateTime("timestamp"); this.UserId = reader.GetAttributeInt64("uid"); this.UserName = reader.GetAttribute("user"); this.Visible = reader.GetAttributeBool("visible"); TagsCollection tags = null; var members = new List <RelationMember>(); while (reader.Read() && reader.MoveToContent() != XmlNodeType.None) { if (reader.Name == "tag") { if (tags == null) { tags = new TagsCollection(); } tags.Add(new Tag() { Key = reader.GetAttribute("k"), Value = reader.GetAttribute("v") }); } else if (reader.Name == "member") { if (members == null) { members = new List <RelationMember>(); } var member = new RelationMember(); (member as IXmlSerializable).ReadXml(reader); members.Add(member); } else { if (tags != null) { this.Tags = tags; } if (members != null) { this.Members = members.ToArray(); } return; } } if (tags != null) { this.Tags = tags; } if (members != null) { this.Members = members.ToArray(); } }
void IXmlSerializable.ReadXml(XmlReader reader) { this.Id = reader.GetAttributeInt64("id"); this.Version = reader.GetAttributeInt64("version"); this.ChangeSetId = reader.GetAttributeInt64("changeset"); this.TimeStamp = reader.GetAttributeDateTime("timestamp"); this.UserId = reader.GetAttributeInt64("uid"); this.UserName = reader.GetAttribute("user"); this.Visible = reader.GetAttributeBool("visible"); TagsCollection tags = null; var nodes = new List <long>(); while (reader.Read() && reader.MoveToContent() != XmlNodeType.None) { if (reader.Name == "tag") { if (tags == null) { tags = new TagsCollection(); } tags.Add(new Tag() { Key = reader.GetAttribute("k"), Value = reader.GetAttribute("v") }); } else if (reader.Name == "nd") { if (nodes == null) { nodes = new List <long>(); } nodes.Add(reader.GetAttributeInt64("ref").Value); } else { if (tags != null) { this.Tags = tags; } if (nodes != null) { this.Nodes = nodes.ToArray(); } return; } } if (tags != null) { this.Tags = tags; } if (nodes != null) { this.Nodes = nodes.ToArray(); } }
void IXmlSerializable.ReadXml(XmlReader reader) { this.Id = reader.GetAttributeInt64("id"); this.UserName = reader.GetAttribute("user"); this.UserId = reader.GetAttributeInt64("uid"); this.CreatedAt = reader.GetAttributeDateTime("created_at"); this.ClosedAt = reader.GetAttributeDateTime("closed_at"); this.Open = reader.GetAttributeBool("open"); this.MinLongitude = reader.GetAttributeSingle("min_lon"); this.MinLatitude = reader.GetAttributeSingle("min_lat"); this.MaxLongitude = reader.GetAttributeSingle("max_lon"); this.MaxLatitude = reader.GetAttributeSingle("max_lat"); this.CommentsCount = reader.GetAttributeInt32("comments_count"); this.ChangesCount = reader.GetAttributeInt32("changes_count"); TagsCollection tags = null; while (reader.Read() && reader.MoveToContent() != XmlNodeType.None) { if (reader.Name == "tag") { if (tags == null) { tags = new TagsCollection(); } tags.Add(new Tag() { Key = reader.GetAttribute("k"), Value = reader.GetAttribute("v") }); } else if (reader.Name == "discussion") { this.Discussion = new Discussion(); (this.Discussion as IXmlSerializable).ReadXml(reader); } else { if (tags != null) { this.Tags = tags; } return; } } if (tags != null) { this.Tags = tags; } }
public void ReadXml(XmlReader reader) { this.Id = reader.GetAttributeInt64("id") ?? 0; this.Name = reader.GetAttribute("name"); this.Lat = reader.GetAttributeDouble("lat"); this.Lon = reader.GetAttributeDouble("lon"); this.User = reader.GetAttribute("user"); this.Visibility = reader.GetAttributeEnum <Visibility>("visibility"); this.Pending = reader.GetAttributeBool("pending") ?? false; this.TimeStamp = reader.GetAttributeDateTime("timestamp") ?? DateTime.Now; var tags = new List <string>(); reader.GetElements( new Tuple <string, Action>( "description", () => { this.Description = reader.ReadElementContentAsString(); }), new Tuple <string, Action>( "tag", () => { tags.Add(reader.ReadElementContentAsString()); })); this.Tags = tags.ToArray(); }
void IXmlSerializable.ReadXml(XmlReader reader) { this.Id = reader.GetAttributeInt64("id"); this.Version = reader.GetAttributeInt32("version"); this.Latitude = reader.GetAttributeSingle("lat"); this.Longitude = reader.GetAttributeSingle("lon"); this.ChangeSetId = reader.GetAttributeInt64("changeset"); this.TimeStamp = reader.GetAttributeDateTime("timestamp"); this.UserId = reader.GetAttributeInt32("uid"); this.UserName = reader.GetAttribute("user"); this.Visible = reader.GetAttributeBool("visible"); TagsCollection tags = null; while (reader.Read() && reader.MoveToContent() != XmlNodeType.None) { if (reader.Name == "tag") { if (tags == null) { tags = new TagsCollection(); } tags.Add(new Tag() { Key = reader.GetAttribute("k"), Value = reader.GetAttribute("v") }); } else { if (tags != null) { this.Tags = tags; } return; } } if (tags != null) { this.Tags = tags; } }
void IXmlSerializable.ReadXml(XmlReader reader) { this.Date = reader.GetAttributeDateTime("date"); this.UserId = reader.GetAttributeInt64("uid"); this.UserName = reader.GetAttribute("user"); reader.GetElements( new Tuple <string, Action>( "text", () => { reader.Read(); this.Text = reader.Value; reader.Read(); }) ); }
void IXmlSerializable.ReadXml(XmlReader reader) { reader.MoveToContent(); this.Id = reader.GetAttributeInt64("ref").Value; this.Role = reader.GetAttribute("role"); var type = reader.GetAttribute("type"); switch (type) { case "node": this.Type = OsmGeoType.Node; break; case "way": this.Type = OsmGeoType.Way; break; case "relation": this.Type = OsmGeoType.Relation; break; } }
void IXmlSerializable.ReadXml(XmlReader reader) { this.Id = reader.GetAttributeInt64("id") ?? 0; this.DisplayName = reader.GetAttribute("display_name"); this.AccountCreated = reader.GetAttributeDateTime("account_created").Value; reader.GetElements( new Tuple <string, Action>( "description", () => { this.Description = reader.ReadElementContentAsString(); }), new Tuple <string, Action>( "contributor-terms", () => { this.ContributorTermsAgreed = reader.GetAttributeBool("agreed") ?? false; this.ContributorTermsPublicDomain = reader.GetAttributeBool("pd") ?? false; reader.Read(); }), new Tuple <string, Action>( "img", () => { this.Image = reader.GetAttribute("href"); reader.Read(); }), new Tuple <string, Action>( "roles", () => { reader.Read(); }), new Tuple <string, Action>( "changesets", () => { this.ChangeSetCount = reader.GetAttributeInt32("count") ?? 0; reader.Read(); }), new Tuple <string, Action>( "traces", () => { this.TraceCount = reader.GetAttributeInt32("count") ?? 0; reader.Read(); }), new Tuple <string, Action>( "blocks", () => { var blocks = new List <Block>(); reader.GetElements(new Tuple <string, Action>( "received", () => { var block = new Block(); block.ReadXml(reader); reader.Read(); blocks.Add(block); })); this.BlocksReceived = blocks.ToArray(); }), new Tuple <string, Action>( "home", () => { this.Home = new Home(); this.Home.ReadXml(reader); reader.Read(); }), new Tuple <string, Action>( "languages", () => { var languages = new List <string>(); reader.GetElements(new Tuple <string, Action>( "lang", () => { languages.Add(reader.ReadElementContentAsString()); })); this.Languages = languages.ToArray(); //reader.Read(); }), new Tuple <string, Action>( "messages", () => { this.Messages = new Messages(); this.Messages.ReadXml(reader); reader.Read(); }) ); }
protected Release ReadRelease(XmlReader reader) { reader.AssertElementStart(Keys.Release); Release release = new Release(); release.JoinedAlbumArtists = reader.GetAttributeOrNull(Keys.JoinedAlbumArtists); release.Title = reader.GetAttributeOrNull(Keys.Title); release.ReleaseDate = ReleaseDate.Parse(reader.GetAttributeOrNull(Keys.ReleaseDate)); release.OriginalReleaseDate = ReleaseDate.Parse(reader.GetAttributeOrNull(Keys.OriginalReleaseDate)); release.CatalogNumber = reader.GetAttributeOrNull(Keys.CatalogNumber); release.Label = reader.GetAttributeOrNull(Keys.Label); release.Country = reader.GetAttributeOrNull(Keys.Country); release.FlagMessage = reader.GetAttributeOrNull(Keys.FlagMessage); release.IsFlagged = release.FlagMessage != null; release.Notes = reader.GetAttributeOrNull(Keys.Notes); release.WikipediaPageName = reader.GetAttributeOrNull(Keys.WikipediaPageName); release.DiscogsReleaseId = reader.GetAttributeInt32(Keys.DiscogsReleaseId, 0); release.DiscogsMasterId = reader.GetAttributeInt32(Keys.DiscogsMasterId, 0); release.Genre = reader.GetAttributeOrNull(Keys.Genre); release.Score = reader.GetAttributeInt32(Keys.Score, 0); release.DynamicRange = reader.GetAttributeDouble(Keys.DynamicRange, double.NaN); release.ReplayGainAlbumGain = reader.GetAttributeDouble(Keys.AlbumGain, double.NaN); release.ReplayGainAlbumPeak = reader.GetAttributeDouble(Keys.AlbumPeak, double.NaN); if (reader.GetAttributeOrNull(Keys.DateAdded) != null) { release.DateAdded = new DateTime(reader.GetAttributeInt64(Keys.DateAdded, 0)); } if (reader.GetAttributeOrNull(Keys.DateAudioModified) != null) { release.DateAudioModified = new DateTime(reader.GetAttributeInt64(Keys.DateAudioModified, 0)); } if (reader.GetAttributeOrNull(Keys.DateModified) != null) { release.DateModified = new DateTime(reader.GetAttributeInt64(Keys.DateModified, 0)); } if (reader.IsEmptyElement) { throw new FormatException(InvalidXmlDatabase); } while (reader.Read()) { if (reader.IsElementEnd(Keys.Release)) { break; } if (reader.IsElementStart(Keys.Artists)) { this.ReadArtists(reader, release); } else if (reader.IsElementStart(Keys.Tracks)) { this.ReadTracks(reader, release); } else if (reader.IsElementStart(Keys.Images)) { this.ReadImages(reader, release); } else if (reader.IsElementStart(Keys.AdditionalFiles)) { this.ReadAdditionalFiles(reader, release); } } return release; }
protected Release ReadRelease(XmlReader reader) { reader.AssertElementStart(Keys.Release); Release release = new Release(); release.JoinedAlbumArtists = reader.GetAttributeOrNull(Keys.JoinedAlbumArtists); release.Title = reader.GetAttributeOrNull(Keys.Title); release.ReleaseDate = ReleaseDate.Parse(reader.GetAttributeOrNull(Keys.ReleaseDate)); release.OriginalReleaseDate = ReleaseDate.Parse(reader.GetAttributeOrNull(Keys.OriginalReleaseDate)); release.CatalogNumber = reader.GetAttributeOrNull(Keys.CatalogNumber); release.Label = reader.GetAttributeOrNull(Keys.Label); release.Country = reader.GetAttributeOrNull(Keys.Country); release.FlagMessage = reader.GetAttributeOrNull(Keys.FlagMessage); release.IsFlagged = release.FlagMessage != null; release.Notes = reader.GetAttributeOrNull(Keys.Notes); release.WikipediaPageName = reader.GetAttributeOrNull(Keys.WikipediaPageName); release.DiscogsReleaseId = reader.GetAttributeInt32(Keys.DiscogsReleaseId, 0); release.DiscogsMasterId = reader.GetAttributeInt32(Keys.DiscogsMasterId, 0); release.Genre = reader.GetAttributeOrNull(Keys.Genre); release.Score = reader.GetAttributeInt32(Keys.Score, 0); release.DynamicRange = reader.GetAttributeDouble(Keys.DynamicRange, double.NaN); release.ReplayGainAlbumGain = reader.GetAttributeDouble(Keys.AlbumGain, double.NaN); release.ReplayGainAlbumPeak = reader.GetAttributeDouble(Keys.AlbumPeak, double.NaN); if (reader.GetAttributeOrNull(Keys.DateAdded) != null) { release.DateAdded = new DateTime(reader.GetAttributeInt64(Keys.DateAdded, 0)); } if (reader.GetAttributeOrNull(Keys.DateAudioModified) != null) { release.DateAudioModified = new DateTime(reader.GetAttributeInt64(Keys.DateAudioModified, 0)); } if (reader.GetAttributeOrNull(Keys.DateModified) != null) { release.DateModified = new DateTime(reader.GetAttributeInt64(Keys.DateModified, 0)); } if (reader.IsEmptyElement) { throw new FormatException(InvalidXmlDatabase); } while (reader.Read()) { if (reader.IsElementEnd(Keys.Release)) { break; } if (reader.IsElementStart(Keys.Artists)) { this.ReadArtists(reader, release); } else if (reader.IsElementStart(Keys.Tracks)) { this.ReadTracks(reader, release); } else if (reader.IsElementStart(Keys.Images)) { this.ReadImages(reader, release); } else if (reader.IsElementStart(Keys.AdditionalFiles)) { this.ReadAdditionalFiles(reader, release); } } return(release); }