public static ISearchStream StartSearchStream(this IUserSession session, IEnumerable<string> track = null, IEnumerable<string> follow = null, IEnumerable<string> locations = null)
{
var searchStream = new SearchStream();
searchStream.SearchParameters = searchStream.ChangeSearchParameters(track, follow, locations);
Func<Task<HttpResponseMessage>> startConnection = () =>
{
if (searchStream.SearchParameters.EnsureOneOf(new[] { "track", "follow", "locations" }).IsFalse())
return null;
var request = session.CreatePost(TwitterApi.SearchStreaming("/1.1/statuses/filter.json"),
searchStream.SearchParameters);
var c = new HttpClient() { Timeout = TimeSpan.FromDays(1) };
return c.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, searchStream.CancelStream.Token);
};
searchStream.CreateOpenConnection = startConnection;
return searchStream;
}
}