public static async Task<ReverseGeoCodePlaces> GetPlaceIDFromInfo(this IUserSession session, string query="", double latitude = 0.0,
double longitude = 0.0, string accuracy = "10m", string containedWithin ="", string granularity = "neighborhood", int maxResults = 20, string ipAddress="")
{
var parameters = new TwitterParametersCollection
{
{"max_results", maxResults.ToString()}
};
if (!string.IsNullOrWhiteSpace(query))
{
parameters.Add("query", query);
}
if (!string.IsNullOrWhiteSpace(containedWithin))
{
parameters.Add("contained_within", containedWithin);
}
if (!string.IsNullOrWhiteSpace(granularity))
{
parameters.Add("granularity", granularity);
}
if (!string.IsNullOrWhiteSpace(ipAddress))
{
parameters.Add("ip", ipAddress);
}
if (Math.Abs(latitude) > 0.0 && Math.Abs(longitude) > 0.0)
{
parameters.Add("lat", latitude.ToString());
parameters.Add("long", longitude.ToString());
if (!string.IsNullOrWhiteSpace(accuracy)) // nested because I think this only matters when lat/long is set
{
parameters.Add("accuracy", accuracy);
}
}
return await session.GetAsync(TwitterApi.Resolve("/1.1/geo/search.json"), parameters)
.ContinueWith(c => c.MapToSingle<ReverseGeoCodePlaces>());
}