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

GetLinkByUrl() public method

public GetLinkByUrl ( string url ) : Task
url string
return Task
        public async Task<Thing> GetLinkByUrl(string url)
        {
            try
            {
                var originalUrl = url;
                if (originalUrl.Contains(".json"))
                {
                }
                else if (originalUrl.Contains("?"))
                {
                    var queryPos = url.IndexOf("?");
                    url = string.Format("{0}.json{1}", originalUrl.Remove(queryPos), originalUrl.Substring(queryPos));
                }
                else 
                {
                    url = originalUrl + ".json";
                }

                Listing listing = null;
                var comments = await _simpleHttpService.SendGet(await GetCurrentLoginCookie(), url);
                if (comments.StartsWith("["))
                {
                    var listings = JsonConvert.DeserializeObject<Listing[]>(comments);
                    listing = new Listing { Data = new ListingData { Children = new List<Thing>() } };
                    foreach (var combinableListing in listings)
                    {
                        listing.Data.Children.AddRange(combinableListing.Data.Children);
                        listing.Kind = combinableListing.Kind;
                        listing.Data.After = combinableListing.Data.After;
                        listing.Data.Before = combinableListing.Data.Before;
                    }
                }
                else
                    listing = JsonConvert.DeserializeObject<Listing>(comments);

                var requestedLinkInfo = listing.Data.Children.FirstOrDefault(thing => thing.Data is Link);
                if (requestedLinkInfo != null)
                {

                    var result = MaybeFilterForNSFW(listing);

                    ((Link)requestedLinkInfo.Data).Permalink = originalUrl;
                    _lastCommentsOnPostRequest = Tuple.Create(DateTime.Now, ((Link)requestedLinkInfo.Data).Subreddit, ((Link)requestedLinkInfo.Data).Permalink, result);
                    return requestedLinkInfo;
                }
                else
                    return null;
            }
            catch(Exception ex)
            {
                _notificationService.CreateErrorNotification(ex);
                return null;
            }
        }