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

GetSubreddit() public method

public GetSubreddit ( string name ) : Task>
name string
return Task>
        public async Task<TypedThing<Subreddit>> GetSubreddit(string name)
        {
            //no info for the front page
            if (name == "/")
                return new TypedThing<Subreddit>(new Thing { Kind = "t5", Data = new Subreddit { Headertitle = name } });
            else if (name == "all")
                return new TypedThing<Subreddit>(new Thing { Kind = "t5", Data = new Subreddit { Headertitle = "all", Url = "/r/all", Name = "all", DisplayName="all", Title="all", Id="t5_fakeid" } });

            string targetUri;
            if (!name.Contains("/m/"))
            {
                targetUri = string.Format("http://www.reddit.com/r/{0}/about.json", name);
                try
                {
                    var comments = await _simpleHttpService.SendGet(await GetCurrentLoginCookie(), targetUri);
                    //error page
                    if (comments.ToLower().StartsWith("<!doctype html>"))
                    {
                        return new TypedThing<Subreddit>(new Thing { Kind = "t5", Data = new Subreddit { Headertitle = name, Title = name, Url = string.Format("r/{0}", name), Created = DateTime.Now, CreatedUTC = DateTime.UtcNow, DisplayName = name, Description = "there doesnt seem to be anything here", Name = name, Over18 = false, PublicDescription = "there doesnt seem to be anything here", Subscribers = 0 } });
                    }
                    else
                    {
                        return new TypedThing<Subreddit>(JsonConvert.DeserializeObject<Thing>(comments));
                    }
                }
                catch (Exception ex)
                {
                    //_notificationService.CreateErrorNotification(ex);
                    return new TypedThing<Subreddit>(new Thing { Kind = "t5", Data = new Subreddit { Headertitle = name, Title = name, Url = string.Format("r/{0}", name), Created = DateTime.Now, CreatedUTC = DateTime.UtcNow, DisplayName = name, Description = "there doesnt seem to be anything here", Name = name, Over18 = false, PublicDescription = "there doesnt seem to be anything here", Subscribers = 0 } });
                }
            }
            else
            {
                var currentUser = await _userService.GetUser();
                if (name.StartsWith("/"))
                    name = name.TrimStart('/');

                if (name.StartsWith("me/"))
                {
                   name = name.Replace("me/", "user/" + currentUser.Username + "/");
                }

                targetUri = string.Format("http://www.reddit.com/api/multi/{0}.json", name);
                try
                {
                    var comments = await _simpleHttpService.SendGet(await GetCurrentLoginCookie(), targetUri);
                    //error page
                    if (comments.ToLower().StartsWith("<!doctype html>"))
                    {
                        return new TypedThing<Subreddit>(new Thing { Kind = "t5", Data = new Subreddit { Headertitle = name, Title = name, Url = string.Format("r/{0}", name), Created = DateTime.Now, CreatedUTC = DateTime.UtcNow, DisplayName = name, Description = "there doesnt seem to be anything here", Name = name, Over18 = false, PublicDescription = "there doesnt seem to be anything here", Subscribers = 0 } });
                    }
                    else
                    {
                        
                        var labeledMulti = new TypedThing<LabeledMulti>(JsonConvert.DeserializeObject<Thing>(comments));
                        var multiPath = labeledMulti.Data.Path;

                        if(!string.IsNullOrWhiteSpace(currentUser.Username))
                            multiPath = multiPath.Replace("/user/" + currentUser.Username, "/me");

                        return new TypedThing<Subreddit>(new Thing { Kind = "t5", Data = new Subreddit { DisplayName = labeledMulti.Data.Name, Title = labeledMulti.Data.Name, Url = multiPath, Headertitle = labeledMulti.Data.Name, Over18 = false } });
                    }
                }
                catch (Exception ex)
                {
                    //_notificationService.CreateErrorNotification(ex);
                    return new TypedThing<Subreddit>(new Thing { Kind = "t5", Data = new Subreddit { Headertitle = name, Title = name, Url = string.Format("r/{0}", name), Created = DateTime.Now, CreatedUTC = DateTime.UtcNow, DisplayName = name, Description = "there doesnt seem to be anything here", Name = name, Over18 = false, PublicDescription = "there doesnt seem to be anything here", Subscribers = 0 } });
                }
            }

            
        }