Beispiel #1
0
        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
                });
            }
        }
Beispiel #2
0
        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);
        }