Example #1
0
        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());
            }
        }
Example #2
0
        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());
            }
        }
Example #3
0
        /// <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));
        }