public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] GetJobsByFilterRequest req, CancellationToken cancellationToken) { try { _logger.LogInformation("GetJobsByFilter started"); GetJobsByFilterResponse response = await _mediator.Send(req, cancellationToken); return(new OkObjectResult(ResponseWrapper <GetJobsByFilterResponse, RequestServiceErrorCode> .CreateSuccessfulResponse(response))); } catch (PostCodeException exc) { _logger.LogErrorAndNotifyNewRelic($"{req.Postcode} is an invalid postcode", exc); return(new ObjectResult(ResponseWrapper <GetJobsByFilterResponse, RequestServiceErrorCode> .CreateUnsuccessfulResponse(RequestServiceErrorCode.ValidationError, "Invalid Postcode")) { StatusCode = StatusCodes.Status400BadRequest }); } catch (Exception exc) { _logger.LogErrorAndNotifyNewRelic("Exception occured in GetJobsByFilter", exc); return(new ObjectResult(ResponseWrapper <GetJobsByFilterResponse, RequestServiceErrorCode> .CreateUnsuccessfulResponse(RequestServiceErrorCode.InternalServerError, "Internal Error")) { StatusCode = StatusCodes.Status500InternalServerError }); } }
public void Setup() { _mockRepository = new MockRepository(MockBehavior.Loose); SetupRepository(); SetUpJobFilteringService(); SetupAddressService(); SetupGroupService(); _jobHeaders = new List <JobHeader>(); _jobHeaders.Add(new JobHeader { JobID = 1, DistanceInMiles = 25d, SupportActivity = SupportActivities.CheckingIn }); _jobHeaders.Add(new JobHeader { JobID = 1, DistanceInMiles = 15d, SupportActivity = SupportActivities.CollectingPrescriptions }); _jobHeaders.Add(new JobHeader { JobID = 1, DistanceInMiles = 20d, SupportActivity = SupportActivities.FaceMask }); _jobHeaders.Add(new JobHeader { JobID = 1, DistanceInMiles = 0d, SupportActivity = SupportActivities.Errands }); _jobHeaders.Add(new JobHeader { JobID = 1, DistanceInMiles = 30d, SupportActivity = SupportActivities.Errands }); _response = new GetJobsByFilterResponse() { JobHeaders = _jobHeaders }; _classUnderTest = new GetJobsByFilterHandler(_repository.Object, _addressService.Object, _jobFilteringService.Object, _groupService.Object); }