/// <summary> /// Returns a weekly album chart of a specified week. /// </summary> /// <param name="span"> /// A <see cref="WeeklyChartTimeSpan"/> /// </param> /// <returns> /// A <see cref="WeeklyAlbumChart"/> /// </returns> public WeeklyAlbumChart GetWeeklyAlbumChart(WeeklyChartTimeSpan span) { RequestParameters p = getParams(); p["from"] = Utilities.DateTimeToUTCTimestamp(span.From).ToString(); p["to"] = Utilities.DateTimeToUTCTimestamp(span.To).ToString(); XmlDocument doc = request("user.getWeeklyAlbumChart", p); XmlNode n = doc.GetElementsByTagName("weeklyalbumchart")[0]; DateTime nfrom = Utilities.TimestampToDateTime(Int64.Parse(n.Attributes[1].InnerText), DateTimeKind.Utc); DateTime nto = Utilities.TimestampToDateTime(Int64.Parse(n.Attributes[2].InnerText), DateTimeKind.Utc); WeeklyAlbumChart chart = new WeeklyAlbumChart(new WeeklyChartTimeSpan(nfrom, nto)); foreach (XmlNode node in doc.GetElementsByTagName("album")) { int rank = Int32.Parse(node.Attributes[0].InnerText); int playcount = Int32.Parse(extract(node, "playcount")); WeeklyAlbumChartItem item = new WeeklyAlbumChartItem(new Album(extract(node, "artist"), extract(node, "name"), Session), rank, playcount, new WeeklyChartTimeSpan(nfrom, nto)); chart.Add(item); } return(chart); }
internal WeeklyAlbumChartItem(Album album, int rank, int playcount, WeeklyChartTimeSpan span) :base(rank, playcount, span) { Album = album; }
public WeeklyTrackChart(WeeklyChartTimeSpan span) : base(span) { }
internal WeeklyAlbumChartItem(Album album, int rank, int playcount, WeeklyChartTimeSpan span) : base(rank, playcount, span) { Album = album; }
internal WeeklyTrackChartItem(Track track, int rank, int playcount, WeeklyChartTimeSpan span) :base(rank, playcount, span) { Track = track; }
internal WeeklyArtistChartItem(Artist artist, int rank, int playcount, WeeklyChartTimeSpan span) : base(rank, playcount, span) { Artist = artist; }
public WeeklyAlbumChart(WeeklyChartTimeSpan span) : base(span) { }
internal WeeklyTrackChartItem(Track track, int rank, int playcount, WeeklyChartTimeSpan span) : base(rank, playcount, span) { Track = track; }
internal WeeklyChartItem(int rank, int playcount, WeeklyChartTimeSpan span) { Rank = rank; Playcount = playcount; Span = span; }
public WeeklyArtistChart(WeeklyChartTimeSpan span) : base(span) { }
internal WeeklyArtistChartItem(Artist artist, int rank, int playcount, WeeklyChartTimeSpan span) :base(rank, playcount, span) { Artist = artist; }
internal WeeklyChart(WeeklyChartTimeSpan span) { Span = span; }