Inheritance: ReleaseBase
Example #1
0
 public MasterReleaseAggregate(MasterRelease master)
 {
     this.master = master;
 }
Example #2
0
        public MasterRelease ReadMasterRelease()
        {
            this.XmlReader.AssertElementStart("master");

            MasterRelease master = new MasterRelease();

            master.Id = int.Parse(this.XmlReader.GetAttribute("id"));

            while (true)
            {
                this.XmlReader.AssertRead();

                if (this.XmlReader.IsElementEnd("master"))
                {
                    break;
                }

                if (this.XmlReader.IsElementStart("main_release"))
                {
                    this.XmlReader.AssertNonEmptyElement();
                    this.XmlReader.AssertRead();
                    master.MainRelease = int.Parse(this.XmlReader.ReadContentAsString());
                }
                else if (this.XmlReader.IsElementStart("images"))
                {
                    master.Images = this.ReadImages();
                }
                else if (this.XmlReader.IsElementStart("artists"))
                {
                    master.Artists = this.ReadReleaseArtists();
                }
                else if (this.XmlReader.IsElementStart("genres"))
                {
                    master.Genres = this.ReadGenres();
                }
                else if (this.XmlReader.IsElementStart("styles"))
                {
                    master.Styles = this.ReadStyles();
                }
                else if (this.XmlReader.IsElementStart("year"))
                {
                    this.XmlReader.AssertNonEmptyElement();
                    this.XmlReader.AssertRead();
                    master.Year = int.Parse(this.XmlReader.ReadContentAsString());
                }
                else if (this.XmlReader.IsElementStart("title"))
                {
                    if (!this.XmlReader.IsEmptyElement)
                    {
                        this.XmlReader.AssertRead();
                        master.Title = this.XmlReader.ReadContentAsString();
                    }
                }
                else if (this.XmlReader.IsElementStart("data_quality"))
                {
                    this.XmlReader.AssertNonEmptyElement();
                    this.XmlReader.AssertRead();
                    master.DataQuality = DataReader.ParseDataQuality(this.XmlReader.ReadContentAsString());
                }
                else if (this.XmlReader.IsElementStart("tracklist"))
                {
                    master.Tracklist = this.ReadTracklist();
                }
                else if (this.XmlReader.IsElementStart("videos"))
                {
                    master.Videos = this.ReadVideos();
                }
                else if (this.XmlReader.IsElementStart("versions"))
                {
                    master.Versions = this.ReadReleaseVersions();
                }
                else if (this.XmlReader.IsElementStart("notes"))
                {
                    this.XmlReader.AssertNonEmptyElement();
                    this.XmlReader.AssertRead();
                    master.Notes = this.XmlReader.ReadContentAsString();
                }
                else
                {
                    this.ThrowInvalidFormatException();
                }
            }

            return(master);
        }
Example #3
0
        public MasterRelease ReadMasterRelease(JObject source)
        {
            MasterRelease master = new MasterRelease();

            foreach (var item in source)
            {
                var v = item.Value;

                switch (item.Key)
                {
                case "id":
                    master.Id = v.Value <int>();
                    break;

                case "videos":
                    master.Videos = this.ReadReleaseVideos(v.Value <JArray>());
                    break;

                case "series":
                    if (((JArray)v).Count != 0)
                    {
                        this.ThrowIfStrict("Unable to process \"series\" item.");
                    }
                    break;

                case "year":
                    // We skip year. Can extract it from release date.
                    break;

                case "images":
                    master.Images = this.ReadImages(v.Value <JArray>());
                    break;

                case "genres":
                    master.Genres = v.ValueAsStringArray();
                    break;

                case "thumb":
                    // We skip thumb. Can extract it from images.
                    break;

                case "title":
                    master.Title = v.Value <string>();
                    break;

                case "artists":
                    master.Artists = this.ReadReleaseArtists(v.Value <JArray>());
                    break;

                case "tracklist":
                    master.Tracklist = this.ReadReleaseTracklist(v.Value <JArray>());
                    break;

                case "styles":
                    master.Styles = v.ValueAsStringArray();
                    break;

                case "released_formatted":
                    // We skip released_formatted. Can extract it from released.
                    break;

                case "master_url":
                    // We skip master_url. Can extract it from master_id.
                    break;

                case "notes":
                    master.Notes = v.Value <string>();
                    break;

                case "companies":
                    // TODO: implement model for this
                    break;

                case "uri":
                    // TODO: implement model for this
                    break;

                case "resource_url":
                    break;

                case "data_quality":
                    master.DataQuality = DataReader.ParseDataQuality(v.Value <string>());
                    break;

                case "main_release":
                    master.MainRelease = v.Value <int>();
                    break;

                case "main_release_url":
                    break;

                case "versions_url":
                    break;

                default:
                    this.ThrowIfStrict("Unknown key: " + item.Key);
                    break;
                }
            }
            return(master);
        }
Example #4
0
        public MasterRelease ReadMasterRelease()
        {
            this.XmlReader.AssertElementStart("master");

            MasterRelease master = new MasterRelease();
            master.Id = int.Parse(this.XmlReader.GetAttribute("id"));

            while (true)
            {
                this.XmlReader.AssertRead();

                if (this.XmlReader.IsElementEnd("master"))
                {
                    break;
                }

                if (this.XmlReader.IsElementStart("main_release"))
                {
                    this.XmlReader.AssertNonEmptyElement();
                    this.XmlReader.AssertRead();
                    master.MainRelease = int.Parse(this.XmlReader.ReadContentAsString());
                }
                else if (this.XmlReader.IsElementStart("images"))
                {
                    master.Images = this.ReadImages();
                }
                else if (this.XmlReader.IsElementStart("artists"))
                {
                    master.Artists = this.ReadReleaseArtists();
                }
                else if (this.XmlReader.IsElementStart("genres"))
                {
                    master.Genres = this.ReadGenres();
                }
                else if (this.XmlReader.IsElementStart("styles"))
                {
                    master.Styles = this.ReadStyles();
                }
                else if (this.XmlReader.IsElementStart("year"))
                {
                    this.XmlReader.AssertNonEmptyElement();
                    this.XmlReader.AssertRead();
                    master.Year = int.Parse(this.XmlReader.ReadContentAsString());
                }
                else if (this.XmlReader.IsElementStart("title"))
                {
                    if (!this.XmlReader.IsEmptyElement)
                    {
                        this.XmlReader.AssertRead();
                        master.Title = this.XmlReader.ReadContentAsString();
                    }
                }
                else if (this.XmlReader.IsElementStart("data_quality"))
                {
                    this.XmlReader.AssertNonEmptyElement();
                    this.XmlReader.AssertRead();
                    master.DataQuality = DataReader.ParseDataQuality(this.XmlReader.ReadContentAsString());
                }
                else if (this.XmlReader.IsElementStart("tracklist"))
                {
                    master.Tracklist = this.ReadTracklist();
                }
                else if (this.XmlReader.IsElementStart("videos"))
                {
                    master.Videos = this.ReadVideos();
                }
                else if (this.XmlReader.IsElementStart("versions"))
                {
                    master.Versions = this.ReadReleaseVersions();
                }
                else if (this.XmlReader.IsElementStart("notes"))
                {
                    this.XmlReader.AssertNonEmptyElement();
                    this.XmlReader.AssertRead();
                    master.Notes = this.XmlReader.ReadContentAsString();
                }
                else
                {
                    this.ThrowInvalidFormatException();
                }
            }

            return master;
        }
Example #5
0
        public MasterRelease ReadMasterRelease(JObject source)
        {
            MasterRelease master = new MasterRelease();
            foreach (var item in source)
            {
                var v = item.Value;

                switch (item.Key)
                {
                    case "id":
                        master.Id = v.Value<int>();
                        break;
                    case "videos":
                        master.Videos = this.ReadReleaseVideos(v.Value<JArray>());
                        break;
                    case "series":
                        if (((JArray)v).Count != 0)
                        {
                            this.ThrowIfStrict("Unable to process \"series\" item.");
                        }
                        break;
                    case "year":
                        // We skip year. Can extract it from release date.
                        break;
                    case "images":
                        master.Images = this.ReadImages(v.Value<JArray>());
                        break;
                    case "genres":
                        master.Genres = v.ValueAsStringArray();
                        break;
                    case "thumb":
                        // We skip thumb. Can extract it from images.
                        break;
                    case "title":
                        master.Title = v.Value<string>();
                        break;
                    case "artists":
                        master.Artists = this.ReadReleaseArtists(v.Value<JArray>());
                        break;
                    case "tracklist":
                        master.Tracklist = this.ReadReleaseTracklist(v.Value<JArray>());
                        break;
                    case "styles":
                        master.Styles = v.ValueAsStringArray();
                        break;
                    case "released_formatted":
                        // We skip released_formatted. Can extract it from released.
                        break;
                    case "master_url":
                        // We skip master_url. Can extract it from master_id.
                        break;
                    case "notes":
                        master.Notes = v.Value<string>();
                        break;
                    case "companies":
                        // TODO: implement model for this
                        break;
                    case "uri":
                        // TODO: implement model for this
                        break;
                    case "resource_url":
                        break;
                    case "data_quality":
                        master.DataQuality = DataReader.ParseDataQuality(v.Value<string>());
                        break;
                    case "main_release":
                        master.MainRelease = v.Value<int>();
                        break;
                    case "main_release_url":
                        break;
                    case "versions_url":
                        break;
                    default:
                        this.ThrowIfStrict("Unknown key: " + item.Key);
                        break;
                }
            }
            return master;
        }
 public MasterReleaseAggregate(MasterRelease master)
 {
     this.master = master;
 }