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)); }
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(); }