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