コード例 #1
0
        public async Task <CPFeed> MyBlogs(int page)
        {
            var loginToken = Settings.AuthLoginToken;

            if (!string.IsNullOrEmpty(loginToken))
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(baseUrl);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    // Add the Authorization header with the AccessToken.
                    client.DefaultRequestHeaders.Add("Authorization", "Bearer " + loginToken);

                    // create the URL string.
                    string url = string.Format("v1/My/blogposts?page={0}", page);

                    // make the request
                    HttpResponseMessage response = await client.GetAsync(url);

                    // parse the response and return the data.
                    string jsonString = await response.Content.ReadAsStringAsync();

                    CPFeed responseData = JsonHelper.Deserialize <CPFeed>(jsonString);
                    await BlobCache.LocalMachine.InsertObject <CPFeed>("MyBlogs", responseData, DateTimeOffset.Now.AddDays(3));

                    return(responseData);
                }
            }
            else
            {
                return(null);
            }
        }
コード例 #2
0
        public async Task <CPFeed> GetArticleAsync(int page, int cveCategoria)
        {
            //if (!initialized)
            //    await Init();
            //var accessToken = Settings.AuthToken;

            //if (!string.IsNullOrEmpty(accessToken))
            //{

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(baseUrl);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                // Add the Authorization header with the AccessToken.
                client.DefaultRequestHeaders.Add("Authorization", "Bearer ");

                // create the URL string.
                string url = string.Format("api/tblnoticias/categoria/{0}", cveCategoria);

                // make the request
                HttpResponseMessage response = await client.GetAsync(url);

                // parse the response and return the data.
                string jsonString = await response.Content.ReadAsStringAsync();

                string jsonArmado = "{'items':" + jsonString + "}";

                CPFeed responseData = JsonHelper.Deserialize <CPFeed>(jsonArmado);                    Debug.WriteLine(responseData);
                //await BlobCache.LocalMachine.InsertObject<CPFeed>("DefaultArticle", responseData, DateTimeOffset.Now.AddDays(1));
                return(responseData);
            }
            //}
            //else
            //{
            //    Init();
            //    return null;
            //}
        }
コード例 #3
0
        private async Task ExecuteGetAuthorDataCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            GetAuthorDataCommand.ChangeCanExecute();

            try
            {
                CPFeed authorDataFeed = null;
                switch (authorDataType)
                {
                case AuthorDataType.Article:
                {
                    authorDataFeed = await BlobCache.LocalMachine.GetOrFetchObject <CPFeed>("MyArticle",
                                                                                            async() => await cpFeed.MyArticles(1),
                                                                                            DateTimeOffset.Now.AddDays(3)
                                                                                            );

                    // I dont like this but let it be
                    await BlobCache.LocalMachine.InsertObject <string>("AuthorArticles", authorDataFeed.pagination.totalItems.ToString(), DateTimeOffset.Now.AddDays(3));

                    break;
                }

                case AuthorDataType.Message:
                {
                    authorDataFeed = await BlobCache.LocalMachine.GetOrFetchObject <CPFeed>("MyMessage",
                                                                                            async() => await cpFeed.MyMessage(1),
                                                                                            DateTimeOffset.Now.AddDays(3)
                                                                                            );

                    await BlobCache.LocalMachine.InsertObject <string>("AuthorMessages", authorDataFeed.pagination.totalItems.ToString(), DateTimeOffset.Now.AddDays(3));

                    break;
                }

                case AuthorDataType.Comments:
                {
                    authorDataFeed = await BlobCache.LocalMachine.GetOrFetchObject <CPFeed>("MyComments",
                                                                                            async() => await cpFeed.MyComments(1),
                                                                                            DateTimeOffset.Now.AddDays(3)
                                                                                            );

                    await BlobCache.LocalMachine.InsertObject <string>("AuthorComments", authorDataFeed.pagination.totalItems.ToString(), DateTimeOffset.Now.AddDays(3));

                    break;
                }

                case AuthorDataType.Tips:
                {
                    authorDataFeed = await BlobCache.LocalMachine.GetOrFetchObject <CPFeed>("MyTips",
                                                                                            async() => await cpFeed.MyTips(1),
                                                                                            DateTimeOffset.Now.AddDays(3)
                                                                                            );

                    await BlobCache.LocalMachine.InsertObject <string>("AuthorTips", authorDataFeed.pagination.totalItems.ToString(), DateTimeOffset.Now.AddDays(3));

                    break;
                }

                case AuthorDataType.TechBlog:
                {
                    authorDataFeed = await BlobCache.LocalMachine.GetOrFetchObject <CPFeed>("MyBlogs",
                                                                                            async() => await cpFeed.MyBlogs(1),
                                                                                            DateTimeOffset.Now.AddDays(3)
                                                                                            );

                    await BlobCache.LocalMachine.InsertObject <string>("AuthorBlogs", authorDataFeed.pagination.totalItems.ToString(), DateTimeOffset.Now.AddDays(3));

                    break;
                }
                }

                foreach (var article in authorDataFeed.items)
                {
                    AutorItems.Add(article);
                }
                IsBusy = false;
            }
            catch (Exception ex)
            {
            }
        }