Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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();
            }
        }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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;
            }
        }
Exemplo n.º 6
0
        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();
            })
                );
        }
Exemplo n.º 7
0
        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;
            }
        }
Exemplo n.º 8
0
        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;
        }
Exemplo n.º 10
0
        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);
        }