public async Task <IActionResult> PatchBasketItem(string basketId, string itemId, [FromBody] JsonPatchDocument <Item> jsonPatchDocument) { try { var basketItem = await this.getBasketItemById .Execute(GetBasketItemByIdRequest.Create(basketId, itemId)); if (null == basketItem) { return(NotFound()); } jsonPatchDocument.ApplyTo(basketItem); await this.updateBasketItem .Execute(UpdateBasketItemRequest.Create(basketId, basketItem)); return(new ObjectResult(basketItem)); } catch (Exception e) { this.logger.Error(e.Message); return(BadRequest()); } }
public async Task <IActionResult> GetBasketItemById(string basketId, string itemId) { try { if (string.IsNullOrEmpty(basketId) || string.IsNullOrEmpty(itemId)) { return(BadRequest()); } var result = await this.getBasketItemById .Execute(GetBasketItemByIdRequest.Create(basketId, itemId)); if (null == result) { return(NotFound()); } return(Ok(result)); } catch (Exception e) { this.logger.Error(e.Message); return(BadRequest()); } }
/// <summary> /// Executes the GetBasketItemById use case. /// </summary> /// <param name="request">The request filter to be applied</param> /// <returns>Returns the basket item for the request argument filte</returns> public async Task <Item> Execute(GetBasketItemByIdRequest request) { var basket = await this.basketsRepository.Get(request.BasketId); if (null == basket) { return(null); } var item = basket.Items .Where(x => x.ItemId.Equals(request.ItemId, StringComparison.InvariantCultureIgnoreCase)).SingleOrDefault(); return(this.basketsTypeAdapter.ToDto(item)); }