public Label ReadLabel() { this.XmlReader.AssertElementStart("label"); Label label = new Label(); while (true) { this.XmlReader.AssertRead(); if (this.XmlReader.IsElementEnd("label")) { break; } if (this.XmlReader.IsElementStart("images")) { label.Images = this.ReadImages(); } else if (this.XmlReader.IsElementStart("id")) { if (!this.XmlReader.IsEmptyElement) { this.XmlReader.AssertRead(); label.Id = int.Parse(this.XmlReader.ReadContentAsString()); } } else if (this.XmlReader.IsElementStart("name")) { if (!this.XmlReader.IsEmptyElement) { this.XmlReader.AssertRead(); label.Name = this.XmlReader.ReadContentAsString(); } } else if (this.XmlReader.IsElementStart("contactinfo")) { if (!this.XmlReader.IsEmptyElement) { this.XmlReader.AssertRead(); label.ContactInfo = this.XmlReader.ReadContentAsString(); } } else if (this.XmlReader.IsElementStart("profile")) { if (!this.XmlReader.IsEmptyElement) { this.XmlReader.AssertRead(); label.Profile = this.XmlReader.ReadContentAsString(); } } else if (this.XmlReader.IsElementStart("data_quality")) { if (!this.XmlReader.IsEmptyElement) { this.XmlReader.AssertRead(); label.DataQuality = DataReader.ParseDataQuality(this.XmlReader.ReadContentAsString()); } } else if (this.XmlReader.IsElementStart("urls")) { label.Urls = this.ReadUrls(); } else if (this.XmlReader.IsElementStart("sublabels")) { label.Sublabels = this.ReadSublabels(); } else if (this.XmlReader.IsElementStart("parentLabel")) { if (!this.XmlReader.IsEmptyElement) { this.XmlReader.AssertRead(); label.ParentLabel = this.XmlReader.ReadContentAsString(); } } else { this.ThrowInvalidFormatException(); } } return label; }
public static Label ReadLabel(XElement el) { el.AssertName("label"); el.AssertNoAttributes(); Label result = new Label(); foreach (XElement e in el.Elements()) { if (e.Name == "images") { result.Images = e.Elements().Select(i => ReadImage(i)).ToArray(); } else if (e.Name == "name") { e.AssertOnlyText(); result.Name = e.Value; } else if (e.Name == "contactinfo") { e.AssertOnlyText(); result.ContactInfo = e.Value.TrimAndNormalizeLineEndings(); } else if (e.Name == "profile") { e.AssertOnlyText(); result.Profile = e.Value.TrimAndNormalizeLineEndings(); } else if (e.Name == "urls") { result.Urls = e.Elements().AssertNames("url").AssertOnlyText().Select(i => e.Value).ToArray(); } else if (e.Name == "sublabels") { } else if (e.Name == "parentLabel") { e.AssertOnlyText(); result.ParentLabel = e.Value; } else if (e.Name == "releases") { result.Releases = e.Elements().Select(release => ReadLabelRelease(release)).ToArray(); } else { throw new Exception("Unknown label element: " + e.Name); } } return result; }
public Label ReadLabel(JObject source) { Label label = new Label(); foreach (var item in source) { var v = item.Value; switch (item.Key) { case "id": label.Id = v.Value<int>(); break; case "profile": label.Profile = v.Value<string>(); break; case "releases_url": break; case "name": label.Name = v.Value<string>(); break; case "contact_info": label.ContactInfo = v.Value<string>(); break; case "uri": label.Uri = v.Value<string>(); break; case "sublabels": label.Sublabels = v.Value<JArray>().Cast<JObject>().Select(t => this.ReadSublabel(t)).ToArray(); break; case "urls": label.Urls = v.ValueAsStringArray(); break; case "images": label.Images = this.ReadImages(v.Value<JArray>()); break; case "resource_url": break; case "data_quality": label.DataQuality = DataReader.ParseDataQuality(v.Value<string>()); break; default: this.ThrowIfStrict("Unknown key: " + item.Key); break; } } return label; }