private static Entity Search(string url) { var query = SearchUrlPattern.Match(HttpUtility.UrlDecode(url)).Groups[1].Value; var searchBuilder = new SearchBuilder().WithQuery(query); var nameValueCollection = HttpUtility.ParseQueryString(new Uri(RedditBaseAddress, url).Query); IEnumerable <Thing> things; if (nameValueCollection.AllKeys.Contains("type")) { var type = nameValueCollection["type"]; var count = nameValueCollection.AllKeys.Contains("count") ? int.Parse(nameValueCollection["count"]) : 0; searchBuilder.WithCount(count); if (type == "subreddit") { things = new Reddit().SearchSubreddits(query).Skip(count).Take(25); searchBuilder.OnlySubreddit(); } else { things = new Reddit().Search <Thing>(query).Skip(count).Take(25); searchBuilder.OnlyPost(); } } else { things = new Reddit().SearchSubreddits(query).Take(3).Concat(new Reddit().Search <Thing>(query).Take(22)); } return(searchBuilder.Build(things)); }