Пример #1
0
        /// <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);
        }