public ActionResult PlaceOrder(string tkn, string rd, string error)
        {
            ViewBag.tkn = tkn;
            if (rd.ToUpper() == "PAYPAL")
            {
                ViewBag.payment = "Pay with paypal";
            }
            else
            {
                ViewBag.payment = "Pay on delivery";
                ViewBag.pod     = "1";
            }

            Customer_shipping_address customer_Shipping_Address = new Customer_shipping_address();

            using (EasyBillingEntities db = new EasyBillingEntities())
            {
                if (tkn == null && tkn == "")
                {
                    ViewBag.item = db.Products_For_Sales.Where(z => z.Token_Number == tkn).Distinct().FirstOrDefault();
                }
                var customerToken = db.Customers.Where(z => z.Email == User.Identity.Name).Select(z => z.Token_number).Distinct().FirstOrDefault();
                var isuser        = "******";
                if (customerToken == null)
                {
                    customerToken = db.Users.Where(z => z.Email == User.Identity.Name).Select(z => z.Token_number).Distinct().FirstOrDefault();
                    isuser        = "******";
                }
                ViewBag.isuser = isuser;
                bool chktkn = db.Customer_shipping_addresses.Where(z => z.Customer_token_number == customerToken).Any();
                if (chktkn != false)
                {
                    customer_Shipping_Address = db.Customer_shipping_addresses.Where(z => z.Customer_token_number == customerToken).Distinct().FirstOrDefault();
                }
                if (tkn == null || tkn == "")
                {
                    ViewBag.tkn = null;
                    List <cartlist> cartlists = new List <cartlist>();

                    var itmcrt = db.Temp_placedorder.Where(z => z.Customer_token == customerToken).Distinct().ToList();
                    foreach (var eachitm in itmcrt)
                    {
                        cartlist cartlist = new cartlist();
                        var      lst      = db.Products_For_Sales.Where(z => z.Token_Number == eachitm.Item_token).Select(z => z.Total).Distinct().FirstOrDefault();

                        cartlist.Price = lst;
                        cartlists.Add(cartlist);
                    }
                    var total = decimal.Parse("0.00");
                    foreach (var crtlsts in cartlists)
                    {
                        total = total + crtlsts.Price;
                    }

                    ViewBag.itemcart = total;
                }
                ViewBag.error = error;
                return(View(customer_Shipping_Address));
            }
        }
        public ActionResult DeliveryAddress(string v)
        {
            Customer_shipping_address customer_Shipping_Address = new Customer_shipping_address();

            ViewBag.tkn = v;
            using (EasyBillingEntities db = new EasyBillingEntities())
            {
                if (v != null && v != "")
                {
                    ViewBag.item = db.Products_For_Sales.Where(z => z.Token_Number == v).Distinct().FirstOrDefault();
                }

                var customerToken = db.Customers.Where(z => z.Email == User.Identity.Name).Select(z => z.Token_number).Distinct().FirstOrDefault();
                if (customerToken == null)
                {
                    customerToken = db.Users.Where(z => z.Email == User.Identity.Name).Select(z => z.Token_number).Distinct().FirstOrDefault();
                }
                if (v == null || v == "")
                {
                    List <cartlist> cartlists = new List <cartlist>();

                    var itmcrt = db.Temp_placedorder.Where(z => z.Customer_token == customerToken).Distinct().ToList();
                    if (itmcrt.Count == 0)
                    {
                        return(RedirectToAction("CartList"));
                    }
                    foreach (var eachitm in itmcrt)
                    {
                        cartlist cartlist = new cartlist();
                        var      lst      = db.Products_For_Sales.Where(z => z.Token_Number == eachitm.Item_token).Select(z => z.Total).Distinct().FirstOrDefault();

                        cartlist.Price = lst;
                        cartlists.Add(cartlist);
                    }
                    var total = decimal.Parse("0.00");
                    foreach (var crtlsts in cartlists)
                    {
                        total = total + crtlsts.Price;
                    }

                    ViewBag.itemcart = total;
                }
                bool chktkn = db.Customer_shipping_addresses.Where(z => z.Customer_token_number == customerToken).Any();
                if (chktkn != false)
                {
                    customer_Shipping_Address = db.Customer_shipping_addresses.Where(z => z.Customer_token_number == customerToken).Distinct().FirstOrDefault();
                }
            }
            if (customer_Shipping_Address != null)
            {
                return(View(customer_Shipping_Address));
            }
            else
            {
                return(View());
            }
        }
        public ActionResult PlaceOrderSuccess(string v, string pymth, string usr)
        {
            if (pymth.ToUpper() == "PAYPAL")
            {
                ViewBag.payment = "Pay with paypal";
            }
            else
            {
                ViewBag.payment = "Pay on delivery";
            }
            Customer_shipping_address customer_Shipping_Address = new Customer_shipping_address();
            Placed_Order placed_Order = new Placed_Order();

            if (v != null && v != "")
            {
                using (EasyBillingEntities db = new EasyBillingEntities())
                {
                    if (v.ToLower() != "crt")
                    {
                        ViewBag.item = db.Products_For_Sales.Where(z => z.Token_Number == v).Distinct().FirstOrDefault();
                        ViewBag.tkn  = v;
                    }
                    string customerToken = null;
                    if (usr == "1")
                    {
                        customerToken = db.Users.Where(z => z.Email == User.Identity.Name).Select(z => z.Token_number).Distinct().FirstOrDefault();
                    }
                    else
                    {
                        customerToken = db.Customers.Where(z => z.Email == User.Identity.Name).Select(z => z.Token_number).Distinct().FirstOrDefault();
                    }
                    if (v.ToLower() == "crt")
                    {
                        ViewBag.tkn = null;
                        List <cartlist> cartlists = new List <cartlist>();

                        var itmcrt = db.Temp_placedorder.Where(z => z.Customer_token == customerToken).Distinct().ToList();
                        foreach (var eachitm in itmcrt)
                        {
                            cartlist cartlist = new cartlist();
                            var      lst      = db.Products_For_Sales.Where(z => z.Token_Number == eachitm.Item_token).Select(z => z.Total).Distinct().FirstOrDefault();

                            cartlist.Price = lst;
                            cartlists.Add(cartlist);
                        }
                        var total = decimal.Parse("0.00");
                        foreach (var crtlsts in cartlists)
                        {
                            total = total + crtlsts.Price;
                        }

                        ViewBag.itemcart = total;
                    }
                    bool chktkn = db.Customer_shipping_addresses.Where(z => z.Customer_token_number == customerToken).Any();
                    if (chktkn != false)
                    {
                        if (v.ToLower() != "crt")
                        {
                            placed_Order.Token_number   = Guid.NewGuid().ToString();
                            placed_Order.Item_token     = v;
                            placed_Order.Orderplaced    = false;
                            placed_Order.Pieces         = 1;
                            placed_Order.Customer_token = customerToken;
                            if (usr == "1")
                            {
                                placed_Order.IsUser = true;
                            }
                            else
                            {
                                placed_Order.IsUser = false;
                            }
                            placed_Order.Order_Date   = DateTime.Now.Date;
                            placed_Order.Approve_Date = DateTime.Parse("12/12/12");
                            if (pymth.ToUpper() == "PAYPAL")
                            {
                                placed_Order.Ispaid = true;
                            }
                            else
                            {
                                placed_Order.Ispaid = false;
                            }
                            db.Placed_Orders.Add(placed_Order);

                            Stock             stock             = db.Stocks.Where(z => z.Product_Token == v).Distinct().FirstOrDefault();
                            Products_For_Sale products_For_Sale = db.Products_For_Sales.Where(z => z.Token_Number == v).Distinct().FirstOrDefault();
                            stock.Pieces = stock.Pieces - products_For_Sale.Pieces;
                            if (stock.Pieces < 0)
                            {
                                return(RedirectToAction("PlaceOrder", new { error = "Stock cannot be negetive. Please check." }));
                            }
                            else
                            {
                                db.SaveChanges();
                            }
                        }
                        else
                        {
                            var tmlchk = db.Temp_placedorder.Where(z => z.Customer_token == customerToken).Distinct().ToList();
                            if (tmlchk.Count() > 0)
                            {
                                foreach (var eachtmpdata in tmlchk)
                                {
                                    placed_Order.Token_number   = Guid.NewGuid().ToString();
                                    placed_Order.Item_token     = eachtmpdata.Item_token;
                                    placed_Order.Orderplaced    = false;
                                    placed_Order.Pieces         = (int)eachtmpdata.Pieces;
                                    placed_Order.Customer_token = customerToken;
                                    if (usr == "1")
                                    {
                                        placed_Order.IsUser = true;
                                    }
                                    else
                                    {
                                        placed_Order.IsUser = false;
                                    }
                                    placed_Order.Order_Date   = DateTime.Now.Date;
                                    placed_Order.Approve_Date = DateTime.Parse("12/12/12");
                                    if (pymth.ToUpper() == "PAYPAL")
                                    {
                                        placed_Order.Ispaid = true;
                                    }
                                    else
                                    {
                                        placed_Order.Ispaid = false;
                                    }
                                    db.Placed_Orders.Add(placed_Order);

                                    Stock             stock             = db.Stocks.Where(z => z.Product_Token == eachtmpdata.Item_token).Distinct().FirstOrDefault();
                                    Products_For_Sale products_For_Sale = db.Products_For_Sales.Where(z => z.Token_Number == eachtmpdata.Item_token).Distinct().FirstOrDefault();
                                    stock.Pieces = stock.Pieces - (products_For_Sale.Pieces * ((int)eachtmpdata.Pieces));

                                    if (stock.Pieces < 0)
                                    {
                                        return(RedirectToAction("PlaceOrder", new { error = "Stock cannot be negetive. Please check." }));
                                    }
                                    else
                                    {
                                        db.SaveChanges();
                                    }
                                }
                            }

                            db.Temp_placedorder.RemoveRange(tmlchk);
                            db.SaveChanges();
                        }
                        customer_Shipping_Address = db.Customer_shipping_addresses.Where(z => z.Customer_token_number == customerToken).Distinct().FirstOrDefault();
                    }
                }
            }
            if (customer_Shipping_Address != null)
            {
                return(View(customer_Shipping_Address));
            }
            else
            {
                return(View());
            }
        }