public async Task <IActionResult> GetUpcomingEvents([FromQuery] GetUpcomingEventsRequest request) { var query = new GeoDistanceQuery(); query.Field("location"); query.Latitude(request.Latitude); query.Longitude(request.Longitude); query.Distance($"{request.Radius}km"); var searchParams = new SearchParams() .Fields("*") .Limit(10) .Timeout(TimeSpan.FromMilliseconds(10000)); var searchQuery = new SearchQuery { Query = query, Index = "eventsgeoindex", SearchParams = searchParams }; var searchQueryResults = await _bucket.QueryAsync(searchQuery); var result = new List <GetUpcomingEventsResponse>(); foreach (var hit in searchQueryResults.Hits) { result.Add(new GetUpcomingEventsResponse { Subject = hit.Fields["subject"], Address = hit.Fields["address"], Date = hit.Fields["date"] }); } return(Ok(result)); }
public async Task <IActionResult> Upcoming([FromQuery] GetUpcomingEventsRequest request) { var @events = await _eventsApi.Upcoming(request); return(Ok(@events)); }