BaconographyPortable.Model.Reddit.RedditService.SendPost C# (CSharp) Method

SendPost() private method

private SendPost ( string cookie, string>.Dictionary urlEncodedData, string uri, bool queuedMessage = false ) : Task
cookie string
urlEncodedData string>.Dictionary
uri string
queuedMessage bool
return Task
        private async Task<string> SendPost(string cookie, Dictionary<string, string> urlEncodedData, string uri, bool queuedMessage = false)
        {
            if (!urlEncodedData.ContainsKey("api_type"))
                urlEncodedData.Add("api_type", "json");

            if (!String.IsNullOrEmpty(CaptchaIden))
            {
                if (urlEncodedData.ContainsKey("iden"))
                    urlEncodedData["iden"] = CaptchaIden;
                else
                    urlEncodedData.Add("iden", CaptchaIden);
            }

            if (!String.IsNullOrEmpty(Captcha))
            {
                if (urlEncodedData.ContainsKey("captcha"))
                    urlEncodedData["captcha"] = Captcha;
                else
                    urlEncodedData.Add("captcha", Captcha);
            }

            string response = null;

            response = await _simpleHttpService.SendPost(cookie, urlEncodedData, uri);

            var jsonObject = JsonConvert.DeserializeObject(response) as JObject;
            JToken captcha = null;
            JToken errors = null;
            JObject first = null;

            if (jsonObject.First != null)
                first = (jsonObject.First as JProperty).Value as JObject;

            if (first != null)
            {
                first.TryGetValue("captcha", out captcha);
                first.TryGetValue("errors", out errors);
                if (captcha != null)
                    CaptchaIden = captcha.Value<string>();

                if (captcha != null && errors != null)
                {
                    var user = await _userService.GetUser();
                    user.NeedsCaptcha = true;

                    // If a user has told us to bug off this session, do as they say
                    if (!_settingsService.PromptForCaptcha)
                        return response;

                    PostQueue.Add(new PostData { Cookie = cookie, Uri = uri, UrlEncodedData = urlEncodedData });

                    CaptchaViewModel captchaVM = CaptchaViewModel.GetInstance(_baconProvider);
                    captchaVM.ShowCaptcha(CaptchaIden);
                }
            }

            return response;
        }