public IHttpActionResult Cancel([FromBody] CancelModel model)
        {
            var cmd    = new CancelBasket(model.BasketId);
            var basket = _commandDispatcher.ExecuteCommand <BasketAggregate>(cmd);

            return(Ok());
        }
Example #2
0
        public async Task <IActionResult> Cancel([FromBody] CancelModel model)
        {
            var useCase = new CancelBasket(model.BasketId);
            var cmd     = new Command <CancelBasket>(useCase);

            var basket = await _commandHandler.Execute <CancelledBasket>(cmd);

            return(Ok(BasketModel.FromAggregateRoot(basket)));
        }
Example #3
0
        internal void Cancel(CancelBasket cmd)
        {
            if (State == BasketState.Cancelled)
            {
                return;
            }

            if (State != BasketState.Pending)
            {
                throw new InvalidStateException(cmd.AggregateId, $"Cannot cancel, basket is {State}");
            }

            RaiseEvent(new BasketCancelled(cmd.AggregateId));
        }
Example #4
0
        public void When_Cancel_Cancelled()
        {
            Given(InitialEvents);

            var command = new CancelBasket(id);

            command.Metadata.CausationId   = command.Metadata.CommandId;
            command.Metadata.CorrelationId = causationAndCorrelationId;

            When(command);

            var expectedEvent = new BasketCancelled(id);

            expectedEvent.Metadata.CausationId   = command.Metadata.CommandId;
            expectedEvent.Metadata.CorrelationId = causationAndCorrelationId;
            expectedEvent.Metadata.ProcessId     = command.Metadata.ProcessId;

            Then(expectedEvent);
        }