Esempio n. 1
0
 public void get_search_results(string search, int count = 0, int page = 0, string post_type = null)
 {
     WordpressEventArgs args = new WordpressEventArgs(WordpressDataType.PostList, HttpStatusCode.OK, true);
     string str = url + "?json=get_search_results&search=" + search;
     if (count != 0)
     {
         str += "&count=" + count.ToString();
     }
     if (page != 0)
     {
         str += "&page=" + page.ToString();
     }
     if (!string.IsNullOrEmpty(post_type))
     {
         str += "&post_type=" + post_type;
     }
     Helper.HttpWebRequestDownload((asynchronousResult) =>
     {
         HttpWebRequest request =
             (HttpWebRequest)asynchronousResult.AsyncState;
         HttpWebResponse response =
             (HttpWebResponse)request.EndGetResponse(asynchronousResult);
         PostList pl = new PostList();
         if (response.StatusCode == HttpStatusCode.OK)
         {
             try
             {
                 using (StreamReader streamReader1 =
                     new StreamReader(response.GetResponseStream()))
                 {
                     string resultString = streamReader1.ReadToEnd();
                     pl = Helper.Deserialize<PostList>(resultString);
                 }
             }
             catch
             {
                 args.Success = false;
             }
         }
         else
         {
             args.Success = false;
             args.ResponseCode = response.StatusCode;
             pl.Count = 1;
             pl.Posts = new List<Post>();
             pl.Posts.Add(new Post() { Title = "Failed to connect", Content = "Check data connection and try again, HttpStatusCode=" + response.StatusCode});
         }
         Deployment.Current.Dispatcher.BeginInvoke(new Action(() =>
         {
             try
             {
                 get_search_results_complete.Invoke(pl, args);
             }
             catch
             {
             }
         }));
     }, str);
 }
Esempio n. 2
0
        /// <summary>
        /// Gets a page with a given slug
        /// </summary>
        /// <param name="slug">Page slug to find</param>
        /// <param name="children">Search page children as well</param>
        public void get_page(string slug, bool children = false)
        {
            WordpressEventArgs args = new WordpressEventArgs(WordpressDataType.PostList,HttpStatusCode.OK,true);
            string str = url + "?json=get_page&slug=" + slug;
            if (children)
            {
                str += "&children=true";
            }
            Helper.HttpWebRequestDownload((asynchronousResult) =>
            {
                HttpWebRequest request =
                    (HttpWebRequest)asynchronousResult.AsyncState;
                HttpWebResponse response =
                    (HttpWebResponse)request.EndGetResponse(asynchronousResult);
                PostList pl = new PostList();
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    try
                    {
                    using (StreamReader streamReader1 =
                        new StreamReader(response.GetResponseStream()))
                    {
                        string resultString = streamReader1.ReadToEnd();
                        pl = Helper.Deserialize<PostList>(resultString);
                    }
                    }
                    catch
                    {
                        args.Success = false;
                    }
                }
                else
                {
                    args.Success = false;
                    args.ResponseCode = response.StatusCode;
                    pl.Count = 1;
                    List<Category> cats = new List<Category>();
                    cats.Add(new Category() { Slug = slug });
                    pl.Posts = new List<Post>();
                    pl.Posts.Add(new Post() { Title = "Failed to connect", Content = "Check data connection and try again, HttpStatusCode=" + response.StatusCode, Categories = cats });
                }
                Deployment.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    try
                    {
                        get_page_complete.Invoke(pl, new WordpressEventArgs());
                    }
                    catch
                    {
                    }
                }));
            }, str);
            

        }
Esempio n. 3
0
        public void get_nonce(string controller, string method)
        {

            string str = url + "?json=get_nonce&controller=" + controller + "method=" + method;
            NonceItem nonce = new NonceItem();
            WordpressEventArgs args = new WordpressEventArgs(WordpressDataType.Nonce, HttpStatusCode.OK, true);
            Helper.HttpWebRequestDownload((asynchronousResult) =>
            {
                HttpWebRequest request =
                    (HttpWebRequest)asynchronousResult.AsyncState;
                HttpWebResponse response =
                    (HttpWebResponse)request.EndGetResponse(asynchronousResult);

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    try
                    {
                        using (StreamReader streamReader1 =
                            new StreamReader(response.GetResponseStream()))
                        {
                            string resultString = streamReader1.ReadToEnd();

                            nonce = Helper.Deserialize<NonceItem>(resultString);

                        }
                    }
                    catch
                    {
                        args.Success = false;
                    }
                }
                else
                {
                    args.ResponseCode = response.StatusCode;
                    args.Success = false;
                }

                Deployment.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    try
                    {
                        get_nonce_complete.Invoke(nonce, args);
                    }
                    catch
                    {
                    }
                }));
            }, str);
           
        }
Esempio n. 4
0
        /// <summary>
        /// Gets information about a specific controller 
        /// </summary>
        /// <param name="controller">Controller to retrieve information about (Core, Respond or Post)</param>
        public void info(string controller)
        {

            string str = url + "?json=info&controller=" + controller;
            Controller info = new Controller();
            WordpressEventArgs args = new WordpressEventArgs(WordpressDataType.Controller, HttpStatusCode.OK, true);
            Helper.HttpWebRequestDownload((asynchronousResult) =>
            {
                HttpWebRequest request =
                    (HttpWebRequest)asynchronousResult.AsyncState;
                HttpWebResponse response =
                    (HttpWebResponse)request.EndGetResponse(asynchronousResult);

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    try
                    {
                        using (StreamReader streamReader1 =
                            new StreamReader(response.GetResponseStream()))
                        {
                            string resultString = streamReader1.ReadToEnd();

                            info = Helper.Deserialize<Controller>(resultString);

                        }
                    }
                    catch
                    {
                        args.Success = false;
                    }
                }
                else
                {
                    args.ResponseCode = response.StatusCode;
                    args.Success = false;
                }

                Deployment.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    try
                    {
                        info_complete.Invoke(info, args);
                    }
                    catch
                    {
                    }
                }));
            }, str);
        }
Esempio n. 5
0
        public void get_author_index()
        {
            string str = url + "?json=get_author_index";
            AuthorIndex authors = new AuthorIndex();
            WordpressEventArgs args = new WordpressEventArgs(WordpressDataType.AuthorIndex, HttpStatusCode.OK, true);
            Helper.HttpWebRequestDownload((asynchronousResult) =>
            {
                HttpWebRequest request =
                    (HttpWebRequest)asynchronousResult.AsyncState;
                HttpWebResponse response =
                    (HttpWebResponse)request.EndGetResponse(asynchronousResult);

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    try
                    {
                        using (StreamReader streamReader1 =
                            new StreamReader(response.GetResponseStream()))
                        {
                            string resultString = streamReader1.ReadToEnd();

                            authors = Helper.Deserialize<AuthorIndex>(resultString);

                        }
                    }
                    catch
                    {
                        args.Success = false;
                    }
                }
                else
                {
                    args.ResponseCode = response.StatusCode;
                    args.Success = false;
                }

                Deployment.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    try
                    {
                        get_author_index_complete.Invoke(authors, args);
                    }
                    catch
                    {
                    }
                }));
            }, str);
        }
Esempio n. 6
0
        /// <summary>
        /// Gets a post of a given ID
        /// </summary>
        /// <param name="id">The post ID to retrieve</param>
        public void get_post(int id)
        {
            string str = url + "?json=get_post&id=" + id;
            WordpressEventArgs args =  new WordpressEventArgs(WordpressDataType.SinglePost,HttpStatusCode.OK,true);
            Helper.HttpWebRequestDownload((asynchronousResult) =>
            {
                HttpWebRequest request =
                    (HttpWebRequest)asynchronousResult.AsyncState;
                HttpWebResponse response =
                    (HttpWebResponse)request.EndGetResponse(asynchronousResult);
                SinglePost post = new SinglePost();
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    try
                    {
                    using (StreamReader streamReader1 =
                        new StreamReader(response.GetResponseStream()))
                        {
                            string resultString = streamReader1.ReadToEnd();
                            post = Helper.Deserialize<SinglePost>(resultString);
                        }

                    }
                    catch
                    {
                        args.Success=false;
                    }
                }
                else
                {
                    args.ResponseCode=response.StatusCode;
                    args.Success=false;
                    post = new SinglePost(){Post = new Post(){ Title = "Failed to connect", Content = "Check data connection and try again, HttpStatusCode=" + response.StatusCode}};
                }
                Deployment.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    try
                    {
                        get_post_complete.Invoke(post,args);
                    }
                    catch
                    {
                    }
                }));
            }, str);
        }
Esempio n. 7
0
        public void submit_comment(int postid, string name, string email, string content, string redirect = null, string redirect_ok = null, string redirect_error = null, string redirect_pending = null)
        {
            string str = url + "?json=submit_comment"
                + "&post_id=" + postid
                + "&name=" + Helper.HtmlEncode(name)
                + "&email=" + Helper.HtmlEncode(email)
                + "&content=" + Helper.HtmlEncode(content);
            /*
            Helper.Upload((sender, e) =>
            {
                Comment comment = new Comment();
                if (!e.Cancelled && e.Error == null)
                {
                    comment = Helper.Deserialize<Comment>(e.Result.ToString());
                }
                try
                {
                    submit_comment_complete.Invoke(comment, new WordpressEventArgs(WordpressDataType.Comment, ((HttpWebResponse)sender)., true));
                }
                catch
                {
                }
            }, str);*/
            WordpressEventArgs args = new WordpressEventArgs();
            Helper.HttpWebRequestDownload((asynchronousResult) =>
            {
                Comment c = new Comment();
                try
                {
                    HttpWebRequest request =
                        (HttpWebRequest)asynchronousResult.AsyncState;
                    HttpWebResponse response =
                        (HttpWebResponse)request.EndGetResponse(asynchronousResult);

                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        try
                        {
                            using (StreamReader streamReader1 =
                                new StreamReader(response.GetResponseStream()))
                            {
                                string resultString = streamReader1.ReadToEnd();
                                c = Helper.Deserialize<Comment>(resultString);
                            }
                        }
                        catch
                        {
                            args.Success = false;
                        }
                    }
                    else
                    {
                        args.Success = false;
                        args.ResponseCode = response.StatusCode;
                        }
                }
                catch { }
                finally
                {

                    Deployment.Current.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        try
                        {
                            submit_comment_complete.Invoke(c, args);
                        }
                        catch
                        {
                        }
                    }));
                }
            }, str);

        }