Exemplo n.º 1
0
        public async Task <IActionResult> Index()
        {
            OrderViewModel orderViewModel = new OrderViewModel();

            var user = _identitySvc.Get(HttpContext.User);
            var cart = await _cartSvc.GetCart(user.Email);

            if (cart.Items.Any())
            {
                CartTicket cartTicket   = cart.Items[0];
                Event      catalogEvent = await _eventManagementSvc.GetEvent(cartTicket.EventId);

                //var order = _cartSvc.MapCartToOrder(cart);
                ViewBag.StripePublishableKey = paymentSettings.StripePublicKey;
                //return View(order);

                orderViewModel.EventName   = catalogEvent.Name;
                orderViewModel.EventDate   = catalogEvent.StartDate;
                orderViewModel.Location    = catalogEvent.Place.Address + " " + catalogEvent.Place.City + " " + catalogEvent.Place.State + " " + catalogEvent.Place.ZipCode;
                orderViewModel.Price       = catalogEvent.Price;
                orderViewModel.Quantity    = cartTicket.TicketsPurchased;
                orderViewModel.TotalAmount = orderViewModel.Quantity * orderViewModel.Price;
            }

            return(View(orderViewModel));
        }
Exemplo n.º 2
0
        public async Task Checkout(string buyerId, Dictionary <int, int> tickets)
        {
            var token = await GetUserTokenAsync();

            var cart = await GetCart(buyerId);

            if (cart == null)
            {
                cart = new Cart
                {
                    BuyerId = buyerId,
                    Items   = new List <CartTicket>()
                };
            }

            foreach (var ticket in tickets)
            {
                var existingItem = cart.Items.Where(p => p.EventId == ticket.Key).FirstOrDefault();

                if (existingItem == null)
                {
                    existingItem = new CartTicket
                    {
                        EventId = ticket.Key
                    };
                    cart.Items.Add(existingItem);
                }

                existingItem.TicketsPurchased += ticket.Value;
            }

            var response = await apiClient.PostAsync(remoteServiceBaseUrl, cart, token);

            response.EnsureSuccessStatusCode();
        }