public async Task <GetGroupsWithMapDetailsResponse> GetGroupsWithMapDetails(MapLocation mapLocation) { var request = new GetGroupsWithMapDetailsRequest() { MapLocation = new MapLocationRequest() { MapLocation = mapLocation } }; var requestContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); HttpResponseMessage response = await Client.PostAsync("/api/GetGroupsWithMapDetails", requestContent); var responseString = await response.Content.ReadAsStringAsync(); var deserializeContent = JsonConvert.DeserializeObject <ResponseWrapper <GetGroupsWithMapDetailsResponse, GroupServiceErrorCode> >(responseString); if (deserializeContent.HasContent && deserializeContent.IsSuccessful) { return(deserializeContent.Content); } else { throw new Exception($"Bad response from GetGroupsWithMapDetailsResponse for MapLocation {mapLocation}"); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] [RequestBodyType(typeof(GetGroupsWithMapDetailsRequest), "get group with map details")] GetGroupsWithMapDetailsRequest req, CancellationToken cancellationToken) { try { if (req.IsValid(out var validationResults)) { GetGroupsWithMapDetailsResponse response = await _mediator.Send(req, cancellationToken); return(new OkObjectResult(ResponseWrapper <GetGroupsWithMapDetailsResponse, GroupServiceErrorCode> .CreateSuccessfulResponse(response))); } else { return(new ObjectResult(ResponseWrapper <GetGroupsWithMapDetailsResponse, GroupServiceErrorCode> .CreateUnsuccessfulResponse(GroupServiceErrorCode.ValidationError, validationResults)) { StatusCode = 422 }); } } catch (Exception ex) { _logger.LogErrorAndNotifyNewRelic($"Unhandled error in GetGroupsWithMapDetails", ex); return(new ObjectResult(ResponseWrapper <GetGroupsWithMapDetailsResponse, GroupServiceErrorCode> .CreateUnsuccessfulResponse(GroupServiceErrorCode.InternalServerError, "Internal Error")) { StatusCode = StatusCodes.Status500InternalServerError }); } }