public async Task <bool> Handle(DeleteItemFromBasket request, CancellationToken cancellationToken) { var basket = (await _basketRepository.FindAsync(x => x.GoodsId == request.GoodsId && x.UserId == request.UserId)).Data; if (basket == null) { throw new DomainException(ErrorType.BasketDoesNotExist); } if (basket.Count < request.Count) { throw new DomainException(ErrorType.BasketItemCountLessThenNeed); } if (basket.Count == request.Count) { _basketRepository.Delete(basket); } else { basket.Count -= request.Count; _basketRepository.Update(basket); } await _basketRepository.SaveAsync().ConfigureAwait(false); return(true); }
public async Task <IActionResult> RemoveItemFromBasket([FromBody] DeleteItemFromBasket command) { command.UserId = UserId; var result = await _mediator.Send(command); return(JsonResult(result)); }