public UpdateBasketItemTests() { var factory = new WebApplicationFactory <Startup>(); _client = new CheckoutHttpClient(factory.CreateClient()); _basketItem1 = new AddBasketItemRequest { Quantity = 2, Ref = "ABC", Name = "Banana", Price = 2.99M, }; _basketItem2 = new AddBasketItemRequest { Quantity = 1, Ref = "XYZ", Name = "Apple", Price = 4.99M, }; _updateBasketItem1Request = new UpdateBasketItemRequest { Quantity = 50 }; }
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 UpdateBasketItemAsync(Guid basketId, Guid basketItemId, UpdateBasketItemRequest updateBasketItemRequest) { if (updateBasketItemRequest == null) { throw new ArgumentNullException(nameof(updateBasketItemRequest)); } var result = await PutAsync($"/basket/{basketId}/{basketItemId}", new UpdateBasketItemInternalRequest { Quantity = updateBasketItemRequest.Quantity }); result.EnsureSuccessStatusCode(); }
public async Task Execute(UpdateBasketItemRequest request) { try { var domainItem = this.basketsTypeAdapter.ToDomain(request.Item); await this.basketsRepository.UpdateItem(request.BasketId, domainItem); await this.PublishBasketItemUpdated(domainItem); } catch (Exception ex) { this.logger.Error( $"{nameof(InsertBasket)}.{nameof(Execute)}", ex); throw; } }
public async Task <IActionResult> UpdateBasketItem(Guid basketId, Guid basketItemId, [FromBody] UpdateBasketItemRequest basketItem) { if (ModelState.IsValid) { await _mediatr.Send(new UpdateBasketItemCommand { BasketId = basketId, BasketItemId = basketItemId, Quantity = basketItem.Quantity }); return(Ok()); } var errorList = ModelState.ToDictionary( kvp => kvp.Key, kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray() ); return(BadRequest(errorList)); }