public IHttpActionResult Cancel([FromBody] CancelModel model) { var cmd = new CancelBasket(model.BasketId); var basket = _commandDispatcher.ExecuteCommand <BasketAggregate>(cmd); return(Ok()); }
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))); }
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)); }
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); }