protected override Result Handle(AddProductToShoppingCartCommand request) { EnsureArg.IsNotNull(request); var shoppingCartOrNothing = shoppingCartRepository.GetById(request.Id); return(shoppingCartOrNothing.ToResult(ErrorMessages.ShoppingCartNotFound) .OnSuccess(s => AddProductToShoppingCart(s, request.Model.Id))); }
protected override Result <ShoppingCartModel> Handle(GetShoppingCartQuery request) { EnsureArg.IsNotNull(request); var shoppingCartOrNothing = repository.GetById(request.Id); return(shoppingCartOrNothing.ToResult(ErrorMessages.ShoppingCartNotFound) .Map(s => mapper.Map <ShoppingCartModel>(s))); }
protected override Result Handle(EditShoppingCartCommand request) { EnsureArg.IsNotNull(request); var existingShoppingCartOrNothing = repository.GetById(request.Id); return(existingShoppingCartOrNothing.ToResult(ErrorMessages.ShoppingCartNotFound) .OnSuccess(s => UpdateShoppingCart(s, request))); }
protected override Result Handle(DeleteShoppingCartCommand request) { EnsureArg.IsNotNull(request); var shoppingCartOrNothing = repository.GetById(request.Id); return(shoppingCartOrNothing.ToResult(ErrorMessages.ShoppingCartNotFound) .OnSuccess(s => repository.Delete(s)) .OnSuccess(_ => repository.Save())); }