public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] [RequestBodyType(typeof(GetNewShiftActionsRequest), "get new shift actions")] GetNewShiftActionsRequest req, CancellationToken cancellationToken) { try { if (req.IsValid(out var validationResults)) { GetNewShiftActionsResponse response = await _mediator.Send(req, cancellationToken); return(new OkObjectResult(ResponseWrapper <GetNewShiftActionsResponse, GroupServiceErrorCode> .CreateSuccessfulResponse(response))); } else { return(new ObjectResult(ResponseWrapper <GetNewShiftActionsResponse, GroupServiceErrorCode> .CreateUnsuccessfulResponse(GroupServiceErrorCode.ValidationError, validationResults)) { StatusCode = 422 }); } } catch (Exception ex) { _logger.LogErrorAndNotifyNewRelic($"Unhandled error in GetNewShiftActionsResponse", ex); return(new ObjectResult(ResponseWrapper <GetNewRequestActionsResponse, GroupServiceErrorCode> .CreateUnsuccessfulResponse(GroupServiceErrorCode.InternalServerError, "Internal Error")) { StatusCode = StatusCodes.Status500InternalServerError }); } }
public async Task WhenSuccesfullyReturnsRequestId() { _requestId = 1; _request = new PostNewShiftsRequest() { CreatedByUserId = 1, Location = new SingleLocationRequest() { Location = Location.FranklinHallSpilsby }, OtherDetails = "OTHER DETAILS", ReferringGroupId = -7, Source = "a", ShiftLength = 10, StartDate = DateTime.Now, SupportActivitiesCount = new List <SupportActivityCountRequest>() { new SupportActivityCountRequest() { SupportActivity = SupportActivities.Shopping, Count = 2 }, new SupportActivityCountRequest() { SupportActivity = SupportActivities.CollectingPrescriptions, Count = 5 } } }; _getNewShiftActionsResponse = new GetNewShiftActionsResponse() { TaskActions = new Dictionary <NewTaskAction, List <int> >() { { NewTaskAction.MakeAvailableToGroups, new List <int>() } } }; var response = await _classUnderTest.Handle(_request, new CancellationToken()); _groupService.Verify(x => x.GetRequestHelpFormVariant(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <CancellationToken>()), Times.Once); _classUnderTest = new PostNewShiftsHandler(_repository.Object, _groupService.Object, _communicationService.Object); Assert.AreEqual(_requestId, response.RequestID); }