public async Task <IActionResult> AddToCart(EventItem productDetails)
        {
            try
            {
                if (productDetails.Id > 0)
                {
                    var user    = _identityService.Get(HttpContext.User);
                    var product = new CartEventItem()
                    {
                        Id         = Guid.NewGuid().ToString(),
                        Quantity   = 1,
                        EventName  = productDetails.EventName,
                        PictureUrl = productDetails.EventImageUrl,
                        UnitPrice  = productDetails.Price,
                        EventId    = productDetails.Id.ToString()
                    };
                    await _cartService.AddItemToCart(user, product);
                }
                return(RedirectToAction("Index", "Event"));
            }
            catch (BrokenCircuitException)
            {
                // Catch error when CartApi is in circuit-opened mode
                HandleBrokenCircuitException();
            }

            return(RedirectToAction("Index", "Event"));
        }
Example #2
0
        public async Task AddItemToCart(ApplicationUser user, CartEventItem events)
        {
            var cart = await GetCart(user);

            _logger.LogDebug("User Name: " + user.Email);

            var basketItem = cart.Events
                             .Where(e => e.EventId == events.EventId)
                             .FirstOrDefault();

            if (basketItem == null)
            {
                cart.Events.Add(events);
            }
            else
            {
                basketItem.Quantity += 1;
            }

            await UpdateCart(cart);
        }