/// <summary> /// If this object has a Next page get it /// else /// throw new Exception("Next page does not exist."); /// </summary> /// <returns></returns> public async Task <Page <T> > GetNextPage() { if (!HasNextPage) { throw new Exception("Next page does not exist."); } var json = await HttpHelper.Get(Next); if (typeof(T) == typeof(Album)) { var obj = JsonConvert.DeserializeObject <page <album> >(json, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple }); return(obj.ToPOCO <T>()); } if (typeof(T) == typeof(Artist)) { var obj = JsonConvert.DeserializeObject <page <artist> >(json, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple }); return(obj.ToPOCO <T>()); } if (typeof(T) == typeof(Track)) { var obj = JsonConvert.DeserializeObject <page <track> >(json, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple }); return(obj.ToPOCO <T>()); } if (typeof(T) == typeof(Playlist)) { var obj = JsonConvert.DeserializeObject <page <playlist> >(json, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple }); return(obj.ToPOCO <T>()); } if (typeof(T) == typeof(PlaylistTrack)) { var obj = JsonConvert.DeserializeObject <page <playlisttrack> >(json, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple }); return(obj.ToPOCO <T>()); } return(null); }