public async Task <ActionResult <CartItem> > Post(Guid cartId, [FromBody] CartItemForCreation cartItemForCreation) { if (!await _cartRepository.CartExists(cartId)) { return(NotFound()); } if (!await _tournamentRepository.TournamentExists(cartItemForCreation.TournamentId)) { var tournament = await _tournamentService.GetTournament(cartItemForCreation.TournamentId); _tournamentRepository.AddTournament(tournament); await _tournamentRepository.SaveChanges(); } var cartItem = _mapper.Map <Entities.CartItem>(cartItemForCreation); var processedCartItem = await _cartItemsRepository.AddOrUpdateCartItem(cartId, cartItem); await _cartItemsRepository.SaveChanges(); var cartItemToReturn = _mapper.Map <CartItem>(processedCartItem); return(CreatedAtRoute( "GetCartItem", new { cartId = cartItem.CartId, cartItemId = cartItem.CartItemId }, cartItemToReturn)); }
public async Task <IActionResult> AddItem(CartItemForCreation cartItem) { var cartId = Guid.Parse("{E455A3DF-7FA5-47E0-8435-179B300D531F}"); var newItem = await cartService.AddToCart(cartId, cartItem); Response.Cookies.Append(settings.CartIdCookieName, newItem.CartId.ToString()); return(RedirectToAction("Index")); }
public async Task <CartItem> AddToCart(Guid cartId, CartItemForCreation cartItem) { if (cartId == Guid.Empty) { var cartResponse = await client.PostAsJson("/api/carts", new CartForCreation { UserId = settings.UserId }); var cart = await cartResponse.ReadContentAs <Cart>(); cartId = cart.CartId; } var response = await client.PostAsJson($"api/carts/{cartId}/cartitems", cartItem); return(await response.ReadContentAs <CartItem>()); }