コード例 #1
0
        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
                });
            }
        }
コード例 #2
0
        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);
        }