public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] [RequestBodyType(typeof(GetUserByIDRequest), "Get User By ID")] GetUserByIDRequest req, ILogger log) { try { NewRelic.Api.Agent.NewRelic.SetTransactionName("UserService", "GetUserByID"); log.LogInformation("C# HTTP trigger function processed a request."); var eventAttributes = new Dictionary <string, object>() { { "userID", req.ID.ToString() } }; NewRelic.Api.Agent.NewRelic.RecordCustomEvent("GetUserByID request", eventAttributes); GetUserByIDResponse response = await _mediator.Send(req); return(new OkObjectResult(ResponseWrapper <GetUserByIDResponse, UserServiceErrorCode> .CreateSuccessfulResponse(response))); } catch (Exception exc) { LogError.Log(log, exc, req); return(new ObjectResult(ResponseWrapper <GetUserByIDResponse, UserServiceErrorCode> .CreateUnsuccessfulResponse(UserServiceErrorCode.UnhandledError, "Internal Error")) { StatusCode = StatusCodes.Status500InternalServerError }); } }
public async Task <GetJobsAllocatedToUserResponse> Handle(GetJobsAllocatedToUserRequest request, CancellationToken cancellationToken) { GetJobsAllocatedToUserResponse result = new GetJobsAllocatedToUserResponse() { JobSummaries = new List <JobSummary>() }; List <JobSummary> jobSummaries = _repository.GetJobsAllocatedToUser(request.VolunteerUserID); if (jobSummaries.Count == 0) { return(result); } GetUserByIDResponse userByIDResponse = await _userService.GetUser(request.VolunteerUserID, cancellationToken); if (userByIDResponse == null || userByIDResponse.User == null) { return(result); } string volunteerPostCode = userByIDResponse.User.PostalCode; jobSummaries = await _jobService.AttachedDistanceToJobSummaries(volunteerPostCode, jobSummaries, cancellationToken); if (jobSummaries.Count == 0) { return(result); } result = new GetJobsAllocatedToUserResponse() { JobSummaries = jobSummaries.OrderBy(a => a.DueDate).ThenByDescending(a => a.IsHealthCritical).ToList() }; return(result); }