Exemple #1
0
        public async Task <IActionResult> Index()
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            string cartSession = HttpContext.Session.GetString("Cart");

            if (cartSession == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            var cart = JsonConvert.DeserializeObject <Cart>(HttpContext.Session.GetString("Cart"));

            CheckoutAddModel model;

            if (await _userManager.IsInRoleAsync(user, "Dealer"))
            {
                var dealer = _dealerService.GetByUserId(user.Id);
                model = new CheckoutAddModel
                {
                    PersonName      = dealer.FirstName + " " + dealer.LastName,
                    Contact         = dealer.Telephone,
                    ShippingAddress = dealer.Address + "," + dealer.City,
                    Cart            = cart
                };
                return(View(model));
            }
            if (await _userManager.IsInRoleAsync(user, "Distributer"))
            {
                var distributer = _disService.GetByUserId(user.Id);
                model = new CheckoutAddModel
                {
                    PersonName      = distributer.FirstName + " " + distributer.LastName,
                    Contact         = distributer.Telephone,
                    ShippingAddress = distributer.Address + "," + distributer.City,
                    Cart            = cart
                };
                return(View(model));
            }
            return(NotFound());
        }
Exemple #2
0
        public async Task <IActionResult> Index(CheckoutAddModel model)
        {
            DateTime now  = DateTime.Now;
            var      user = await _userManager.GetUserAsync(HttpContext.User);

            string cartSession = HttpContext.Session.GetString("Cart");

            if (cartSession == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var cart = JsonConvert.DeserializeObject <Cart>(HttpContext.Session.GetString("Cart"));

            model.Cart = cart;

            if (model.PaymentType == "Cash On Delivery")
            {
                if (await _userManager.IsInRoleAsync(user, "Dealer"))
                {
                    var dealer = _dealerService.GetByUserId(user.Id);

                    var order = new Order
                    {
                        PersonName      = model.PersonName,
                        Contact         = model.Contact,
                        ShippingAddress = model.ShippingAddress,
                        DatePlaced      = now,
                    };

                    var payment = new Payment()
                    {
                        PersonName       = model.PersonName,
                        Contact          = model.Contact,
                        CreditCardNumber = model.CreditCardNumber,
                        CVV         = model.CVV,
                        CardExpiry  = model.CardExpiry,
                        PaymentDate = now,
                        Cost        = cart.TotalPrice,
                        PaymentType = model.PaymentType,
                    };
                    int result = await _dealerService.PlacedOrderAsync(dealer, cart, order, payment);
                }

                if (await _userManager.IsInRoleAsync(user, "Distributer"))
                {
                    var dis   = _disService.GetByUserId(user.Id);
                    var order = new Order
                    {
                        PersonName      = model.PersonName,
                        Contact         = model.Contact,
                        ShippingAddress = model.ShippingAddress,
                        DatePlaced      = now,
                    };

                    var payment = new Payment()
                    {
                        PersonName       = model.PersonName,
                        Contact          = model.Contact,
                        CreditCardNumber = model.CreditCardNumber,
                        CVV         = model.CVV,
                        CardExpiry  = model.CardExpiry,
                        PaymentDate = now,
                        Cost        = cart.TotalPrice,
                        PaymentType = model.PaymentType,
                    };
                    int result = await _disService.PlacedOrderAsync(dis, cart, order, payment);
                }
                ModelState.Clear();
                TempData["OrderPlaced"] = "success";
                TempData["OrderMsg"]    = "Your Order Has been Placed Thank You";
                HttpContext.Session.Remove("Cart");
                return(RedirectToAction("Index", "Setbox"));
            }
            else
            {
                if (ModelState.IsValid)
                {
                    if (await _userManager.IsInRoleAsync(user, "Dealer"))
                    {
                        var dealer = _dealerService.GetByUserId(user.Id);

                        var order = new Order
                        {
                            PersonName      = model.PersonName,
                            Contact         = model.Contact,
                            ShippingAddress = model.ShippingAddress,
                            DatePlaced      = now,
                        };

                        var payment = new Payment()
                        {
                            PersonName       = model.PersonName,
                            Contact          = model.Contact,
                            CreditCardNumber = model.CreditCardNumber,
                            CVV         = model.CVV,
                            CardExpiry  = model.CardExpiry,
                            PaymentDate = now,
                            Cost        = cart.TotalPrice,
                            PaymentType = model.PaymentType,
                        };
                        int result = await _dealerService.PlacedOrderAsync(dealer, cart, order, payment);
                    }

                    if (await _userManager.IsInRoleAsync(user, "Distributer"))
                    {
                        var dis   = _disService.GetByUserId(user.Id);
                        var order = new Order
                        {
                            PersonName      = model.PersonName,
                            Contact         = model.Contact,
                            ShippingAddress = model.ShippingAddress,
                            DatePlaced      = now,
                        };

                        var payment = new Payment()
                        {
                            PersonName       = model.PersonName,
                            Contact          = model.Contact,
                            CreditCardNumber = model.CreditCardNumber,
                            CVV         = model.CVV,
                            CardExpiry  = model.CardExpiry,
                            PaymentDate = now,
                            Cost        = cart.TotalPrice,
                            PaymentType = model.PaymentType,
                        };

                        int result = await _disService.PlacedOrderAsync(dis, cart, order, payment);
                    }

                    ModelState.Clear();
                    TempData["OrderPlaced"] = "success";
                    TempData["OrderMsg"]    = "Your Order Has been Placed Thank You";
                    HttpContext.Session.Remove("Cart");
                    return(RedirectToAction("Index", "Setbox"));
                }
            }
            return(View(model));
        }