public IHttpActionResult CheckOut([FromBody] CheckOutModel model) { var cmd = new CheckOutBasket(model.BasketId, model.ShippingAddress); var basket = _commandDispatcher.ExecuteCommand <BasketAggregate>(cmd); return(Ok(BasketModel.FromAggregate(basket))); }
public IHttpActionResult CreateBasket() { var basketId = Guid.NewGuid(); var cmd = new CreateBasket(basketId); var basket = _commandDispatcher.ExecuteCommand <BasketAggregate>(cmd); return(Ok(BasketModel.FromAggregate(basket))); }
public IHttpActionResult RemoveItem([FromBody] RemoveItemModel model) { var cmd = new RemoveItemFromBasket( model.BasketId, model.ProductId, model.Quantity); var basket = _commandDispatcher.ExecuteCommand <BasketAggregate>(cmd); return(Ok(BasketModel.FromAggregate(basket))); }
public IHttpActionResult GetBasket(Guid basketId) { var basket = _aggregateRepository.GetAggregateById <BasketAggregate>(basketId); if (basket == null) { return(CreateBasket()); } return(Ok(BasketModel.FromAggregate(basket))); }
private BasketModel GetBasketAggregate(Guid basketId) { var res = Reader.getBasket(AggregateId.NewAggregateId(basketId)); if (res.IsOk) { var b = (res as Result <State, IError> .Ok).Item1; return(BasketModel.FromAggregate(basketId, b)); } return(null); }
public IHttpActionResult AddItem([FromBody] AddItemModel model) { var basketId = model.BasketId; if (model.BasketId == Guid.Empty) { basketId = Guid.NewGuid(); _commandDispatcher.ExecuteCommand <BasketAggregate>(new CreateBasket(basketId)); } // TODO: get model price and name from api by id var cmd = new AddItemToBasket( basketId, model.ProductId, model.Name, model.Price, model.Quantity); var basket = _commandDispatcher.ExecuteCommand <BasketAggregate>(cmd); return(Ok(BasketModel.FromAggregate(basket))); }