public void Arrange()
        {
            _bulkReservation = new BulkReservation
            {
                Count            = ExpectedReservationCount,
                TransferSenderId = ExpectedTransferSenderId
            };
            _bulkCreateAccountReservationsResult = new BulkCreateAccountReservationsResult
            {
                ReservationIds = new List <Guid> {
                    Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()
                }
            };

            _mediator = new Mock <IMediator>();
            _mediator.Setup(x => x.Send(It.Is <BulkCreateAccountReservationsCommand>(c =>
                                                                                     c.ReservationCount.Equals(ExpectedReservationCount) &&
                                                                                     c.AccountLegalEntityId.Equals(ExpectedAccountLegalEntityId) &&
                                                                                     c.TransferSenderAccountId.Equals(ExpectedTransferSenderId)),
                                        It.IsAny <CancellationToken>()))
            .ReturnsAsync(_bulkCreateAccountReservationsResult);
            _httpContext            = new Mock <HttpContext>();
            _reservationsController = new ReservationsController(Mock.Of <ILogger <ReservationsController> >(), _mediator.Object)
            {
                ControllerContext = { HttpContext      = _httpContext.Object,
                                      ActionDescriptor = new ControllerActionDescriptor
                                      {
                                          ControllerName = "reservations"
                                      } }
            };
        }
Exemple #2
0
        public async Task <IActionResult> BulkCreate([FromRoute] long accountLegalEntityId, [FromBody] BulkReservation bulkReservation)
        {
            try
            {
                var result = await _mediator.Send(new BulkCreateAccountReservationsCommand
                {
                    AccountLegalEntityId    = accountLegalEntityId,
                    ReservationCount        = bulkReservation.Count,
                    TransferSenderAccountId = bulkReservation.TransferSenderId
                });

                return(Created("", result));
            }
            catch (ArgumentException argumentException)
            {
                _logger.LogDebug($"Handled ArgumentException, Message:[{argumentException.Message}]");
                return(BadRequest(new ArgumentErrorViewModel
                {
                    Message = argumentException.Message,
                    Params = argumentException.ParamName
                }));
            }
            catch (EntityNotFoundException <Domain.Entities.AccountLegalEntity> e)
            {
                _logger.LogDebug($"Handled EntityNotFoundException, Message:[{e.Message}]");
                return(NotFound());
            }
        }