Esempio n. 1
0
        public async Task <IActionResult> Checkout([FromBody] CartCheckout checkout)
        {
            //Get Total price
            //Remove the basket
            //Send event to Event bus

            var basket = await _repository.GetBasket(checkout.UserName);

            if (basket == null)
            {
                return(BadRequest());
            }

            var removed = await _repository.DeleteBasketById(checkout.UserName);

            if (!removed)
            {
                return(BadRequest());
            }

            var eventMessage = _mapper.Map <BasketCheckoutEvent>(checkout);

            eventMessage.RequestId  = Guid.NewGuid();
            eventMessage.TotalPrice = basket.TotalPrice;
            try
            {
                _eventBus.PublishBasketCheckOut(EventBusConstants.BasketCheckoutQueue, eventMessage);
            }
            catch (Exception)
            {
                throw;
            }

            return(Accepted());
        }
Esempio n. 2
0
        public async Task <IActionResult> Checkout([FromBody] CartCheckout cartCheckout)
        {
            //Get Total Price of Cart
            //Remove Cart
            //Send Checkout event to rabbitmq

            var cartDetails = await _cartRepository.GetCart(cartCheckout.UserName);

            if (cartDetails == null)
            {
                return(BadRequest());
            }

            // var cartRemove = await _cartRepository.DeleteCart(cartDetails.UserName);
            // if (!cartRemove) { return BadRequest(); }

            var eventMessage = _mapper.Map <CartCheckoutEvent>(cartCheckout);

            eventMessage.RequestId = Guid.NewGuid();
            eventMessage.Total     = cartDetails.Total;

            try
            {
                _eventBusRabbitMQProducer.PubishCheckout(EventBusConstants.CartCheckoutQueue, eventMessage);
            }
            catch (Exception)
            {
                throw;
            }

            return(Accepted());
        }
Esempio n. 3
0
        public CartCheckout PurchaseCart()
        {
            using (var ctx = new ApplicationDbContext())
            {
                var cartEntity = ctx.Carts.Include(e => e.GearInCart).Single(e => e.UserId == _userId);

                var model = new CartCheckout()
                {
                    Subtotal  = cartEntity.Subtotal,
                    TotalCost = cartEntity.TotalCost
                };

                ctx.Carts.Remove(cartEntity);

                foreach (var gear in ctx.GearInCarts)
                {
                    if (gear.UserId == _userId)
                    {
                        ctx.GearInCarts.Remove(gear);
                    }
                }

                ctx.SaveChanges();

                return(model);
            }
        }
Esempio n. 4
0
 public void OrderSummary()
 {
     Assert.AreEqual(TotalProduct.Text, "$16.51");
     Assert.AreEqual(TotalShipping.Text, "$2.00");
     Assert.AreEqual(Tax.Text, "$0.74");
     Assert.AreEqual(Total.Text, "$19.25");
     CartCheckout.Click();
     Thread.Sleep(10000);
 }
Esempio n. 5
0
 public CreateOrder(
     IOrderManager orderManager,
     CartCheckout cartCheckout,
     IEmailSink emailSink,
     IEmailTemplateFactory emailTemplateFactory)
 {
     _orderManager         = orderManager;
     _cartCheckout         = cartCheckout;
     _emailSink            = emailSink;
     _emailTemplateFactory = emailTemplateFactory;
 }
Esempio n. 6
0
        public async Task <IActionResult> Checkout([FromBody] CartCheckout cartCheckout)
        {
            var basket = await _repo.GetCart(cartCheckout.Username);

            if (basket == null)
            {
                return(BadRequest());
            }

            var eventMsg = _mapper.Map <BasketCheckoutEvent>(cartCheckout);

            eventMsg.TotalPrice = basket.TotalPrice;
            await _publishEndpoint.Publish(eventMsg);

            await _repo.DeleteCart(basket.Username);

            return(Accepted());
        }
Esempio n. 7
0
        public async Task <IActionResult> Checkout([FromBody] CartCheckout cartCheckout)
        {
            // get existing basket with total price
            var cart = await _cartService.GetCartByCustomerIdAsync(cartCheckout.CustomerId);

            if (cart == null)
            {
                return(BadRequest());
            }

            // send checkout event to rabbitmq
            cartCheckout.TotalPrice = cart.TotalPrice;
            await _publishEndpoint.Publish <CartCheckout>(cartCheckout);

            // remove the basket
            await _cartService.DeleteCartAsync(cart.Id);

            return(Accepted());
        }
Esempio n. 8
0
        public async Task <IActionResult> Checkout([FromBody] CartCheckout CartCheckout,
                                                   [FromHeader(Name = "x-requestid")] string requestId)
        {
            var borrowerId = _service.GetUserIdentity();

            CartCheckout.RequestId = (Guid.TryParse(requestId, out Guid guid) && guid != Guid.Empty) ?
                                     guid : CartCheckout.RequestId;

            var Cart = await _repository.GetCartAsync(borrowerId);

            if (Cart is null)
            {
                return(BadRequest());
            }

            var eventMessage = new UserCheckoutAcceptedIntegrationEvent();

            _eventBus.Publish(eventMessage);

            return(Accepted());
        }
Esempio n. 9
0
        /////////////////////////////////////
        //////      Methods     ////////////
        public static void Menu()
        {
            string input = CartMenu.Print();

            switch (input)
            {
            case "1":
                CartCheckout.Print();
                Cart.Menu();
                break;

            case "2":
                Cart.Menu();
                break;

            case "m":
                break;

            default:
                Cart.Menu();
                break;
            }
        }
Esempio n. 10
0
 public CartCheckout GetCurrentCheckoutInformation(string username)
 {
     using (var context = new EBContext())
     {
         CartCheckout result = (from items in context.ShoppingCarts
                                where items.OnlineCustomer.UserName.Equals(username)
                                select new CartCheckout
         {
             SubTotal = items.ShoppingCartItems.Sum(p => p.Quantity * p.Part.SellingPrice),
             Total = items.ShoppingCartItems.Sum(p => p.Quantity * p.Part.SellingPrice),
             ShoppingCartItems = (from data in items.ShoppingCartItems
                                  orderby data.Part.Description
                                  select new CartItems
             {
                 Description = data.Part.Description,
                 Qty = data.Quantity,
                 UnitPrice = data.Part.SellingPrice,
                 ItemTotal = data.Quantity * data.Part.SellingPrice,
                 ShoppingCartItemID = data.ShoppingCartItemID
             }).ToList()
         }).FirstOrDefault();
         return(result);
     }
 }
Esempio n. 11
0
 public async Task <ActionResult> CheckoutAsync([FromBody] CartCheckout basketCheckout)
 {
     //Willl be implement soon
     return(Accepted());
 }
 public async Task <bool> CheckoutAsync(CartCheckout cartCheckout)
 {
     return(await cartApi.CheckoutCartAsync(cartCheckout));
 }