Ejemplo n.º 1
0
        public ActionResult Register(Customer cust)
        {
            if (ModelState.IsValid)
            {
                db.Customers.Add(cust);
                db.SaveChanges();

                Session["username"] = cust.UserName;
                TempShpData.UserID  = GetUser(cust.UserName).CustomerID;
                return(RedirectToAction("Index", "Home"));
            }
            return(View());
        }
Ejemplo n.º 2
0
        //WISHLIST
        public ActionResult WishList(int id)
        {
            Wishlist wl = new Wishlist();

            wl.ProductID  = id;
            wl.CustomerID = TempShpData.UserID;

            db.Wishlists.Add(wl);
            db.SaveChanges();
            AddRecentViewProduct(id);
            ViewBag.WlItemsNo = db.Wishlists.Where(x => x.CustomerID == TempShpData.UserID).ToList().Count();
            if (TempData["returnURL"].ToString() == "/")
            {
                return(RedirectToAction("Index", "Home"));
            }
            return(Redirect(TempData["returnURL"].ToString()));
        }
Ejemplo n.º 3
0
 public ActionResult Register(Customer cust)
 {
     if (ModelState.IsValid)
     {
         var check = db.Customers.FirstOrDefault(c => c.UserName == cust.UserName);
         if (check == null)
         {
             cust.ConfirmEmail = false;
             db.Customers.Add(cust);
             db.SaveChanges();
             TempShpData.UserID = GetUser(cust.UserName).CustomerID;
             SendMail.GuiEmail("Đăng ký tài khoản", cust.Email, string.Format("Dear {0} <br/> Thank you for your registration, please click on the  below link to complete your registration: <a href =\"{1}\"  title =\"User Email Confirm\">{1}</a>", cust.First_Name + cust.Last_Name, Url.Action("ConfirmEmail", "Account", new { Token = cust.CustomerID, Email = cust.Email }, Request.Url.Scheme)));
             return(RedirectToAction("Confirm", "Account", new { Email = cust.Email }));
         }
         ModelState.AddModelError("Register", "Tài khoản đã tồn tại");
         return(View("Login", cust));
     }
     return(View("Login", cust));
 }
 //REMOVE ITEM FROM WISHLIST
 public ActionResult Remove(int id)
 {
     db.Wishlists.Remove(db.Wishlists.Find(id));
     db.SaveChanges();
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 5
0
        //PLACE ORDER--LAST STEP
        public ActionResult PlaceOrder(FormCollection getCheckoutDetails)
        {
            if (Convert.ToInt32(getCheckoutDetails["PayMethod"]) == 1)
            {
                int shpID = 1;
                if (db.ShippingDetails.Count() > 0)
                {
                    shpID = db.ShippingDetails.Max(x => x.ShippingID) + 1;
                }
                int payID = 1;
                if (db.Payments.Count() > 0)
                {
                    payID = db.Payments.Max(x => x.PaymentID) + 1;
                }
                int orderID = 1;
                if (db.Orders.Count() > 0)
                {
                    orderID = db.Orders.Max(x => x.OrderID) + 1;
                }



                ShippingDetail shpDetails = new ShippingDetail();
                shpDetails.ShippingID = shpID;
                shpDetails.FirstName  = getCheckoutDetails["FirstName"];
                shpDetails.LastName   = getCheckoutDetails["LastName"];
                shpDetails.Email      = getCheckoutDetails["Email"];
                shpDetails.Mobile     = getCheckoutDetails["Mobile"];
                shpDetails.Address    = getCheckoutDetails["Address"];
                shpDetails.Province   = getCheckoutDetails["Province"];
                shpDetails.City       = getCheckoutDetails["City"];
                shpDetails.PostCode   = getCheckoutDetails["PostCode"];
                db.ShippingDetails.Add(shpDetails);
                db.SaveChanges();

                Payment pay = new Payment();
                pay.PaymentID = payID;
                pay.Type      = Convert.ToInt32(getCheckoutDetails["PayMethod"]);
                db.Payments.Add(pay);
                db.SaveChanges();

                Order o = new Order();
                o.OrderID     = orderID;
                o.CustomerID  = TempShpData.UserID;
                o.PaymentID   = payID;
                o.ShippingID  = shpID;
                o.Discount    = Convert.ToInt32(getCheckoutDetails["discount"]);
                o.TotalAmount = Convert.ToInt32(getCheckoutDetails["totalAmount"]);
                o.isCompleted = true;
                o.OrderDate   = DateTime.Now;
                db.Orders.Add(o);
                db.SaveChanges();

                foreach (var OD in TempShpData.items)
                {
                    OD.OrderID = orderID;
                    OD.Order   = db.Orders.Find(orderID);
                    OD.Product = db.Products.Find(OD.ProductID);
                    db.OrderDetails.Add(OD);
                    db.SaveChanges();
                }
                SendMail.GuiEmail("Xác nhận đặt hàng thành công", getCheckoutDetails["Email"], "Cảm ơn bạn đã đặt hàng, mã đơn hàng của bạn là: " + o.OrderID);

                return(RedirectToAction("Index", "ThankYou"));
            }
            //Paypal
            else
            {
                PayPal.Api.APIContext apiContext = Configuration.GetAPIContext();
                try
                {
                    string payerId = Request.Params["PayerID"];
                    if (string.IsNullOrEmpty(payerId))
                    {
                        int shpID = 1;
                        if (db.ShippingDetails.Count() > 0)
                        {
                            shpID = db.ShippingDetails.Max(x => x.ShippingID) + 1;
                        }
                        int payID = 1;
                        if (db.Payments.Count() > 0)
                        {
                            payID = db.Payments.Max(x => x.PaymentID) + 1;
                        }
                        int orderID = 1;
                        if (db.Orders.Count() > 0)
                        {
                            orderID = db.Orders.Max(x => x.OrderID) + 1;
                        }



                        ShippingDetail shpDetails = new ShippingDetail();
                        shpDetails.ShippingID = shpID;
                        shpDetails.FirstName  = getCheckoutDetails["FirstName"];
                        shpDetails.LastName   = getCheckoutDetails["LastName"];
                        shpDetails.Email      = getCheckoutDetails["Email"];
                        shpDetails.Mobile     = getCheckoutDetails["Mobile"];
                        shpDetails.Address    = getCheckoutDetails["Address"];
                        shpDetails.Province   = getCheckoutDetails["Province"];
                        shpDetails.City       = getCheckoutDetails["City"];
                        shpDetails.PostCode   = getCheckoutDetails["PostCode"];
                        db.ShippingDetails.Add(shpDetails);
                        db.SaveChanges();

                        Payment pay = new Payment();
                        pay.PaymentID = payID;
                        pay.Type      = Convert.ToInt32(getCheckoutDetails["PayMethod"]);
                        db.Payments.Add(pay);
                        db.SaveChanges();

                        Order o = new Order();
                        o.OrderID     = orderID;
                        o.CustomerID  = TempShpData.UserID;
                        o.PaymentID   = payID;
                        o.ShippingID  = shpID;
                        o.Discount    = Convert.ToInt32(getCheckoutDetails["discount"]);
                        o.TotalAmount = Convert.ToInt32(getCheckoutDetails["totalAmount"]);
                        o.isCompleted = true;
                        o.OrderDate   = DateTime.Now;
                        db.Orders.Add(o);
                        db.SaveChanges();

                        string tenSp = "";
                        foreach (var OD in TempShpData.items)
                        {
                            OD.OrderID = orderID;
                            OD.Order   = db.Orders.Find(orderID);
                            OD.Product = db.Products.Find(OD.ProductID);
                            tenSp     += db.Products.Find(OD.ProductID).Name + ", ";
                            db.OrderDetails.Add(OD);
                            db.SaveChanges();
                        }
                        SendMail.GuiEmail("Xác nhận đặt hàng thành công", getCheckoutDetails["Email"], "Cảm ơn bạn đã đặt hàng, mã đơn hàng của bạn là: " + o.OrderID);

                        //this section will be executed first because PayerID doesn't exist
                        //it is returned by the create function call of the payment class
                        // Creating a payment
                        // baseURL is the url on which paypal sendsback the data.
                        // So we have provided URL of this controller only
                        string baseURI = Request.Url.Scheme + "://" + Request.Url.Authority + "/CheckOut/PlaceOrder?";
                        //guid we are generating for storing the paymentID received in  session
                        //after calling the create function and it is used in the payment execution
                        var guid = Convert.ToString((new Random()).Next(100000));
                        //CreatePayment function gives us the payment approval url
                        //on which payer is redirected for paypal account payment
                        var createdPayment = this.CreatePayment(apiContext, baseURI + "guid=" + guid, tenSp, o.TotalAmount);
                        //get links returned from paypal in response to Create function  call
                        var    links             = createdPayment.links.GetEnumerator();
                        string paypalRedirectUrl = null;
                        while (links.MoveNext())
                        {
                            PayPal.Api.Links lnk = links.Current;
                            if (lnk.rel.ToLower().Trim().Equals("approval_url"))
                            {
                                //saving the payapalredirect URL to which user will be redirected for payment
                                paypalRedirectUrl = lnk.href;
                            }
                        }
                        // saving the paymentID in the key guid
                        Session.Add(guid, createdPayment.id);
                        return(Redirect(paypalRedirectUrl));
                    }
                    else
                    {
                        // This section is executed when we have received all the payments parameters
                        // from the previous call to the function Create
                        // Executing a payment
                        var guid            = Request.Params["guid"];
                        var executedPayment = ExecutePayment(apiContext, payerId, Session[guid] as string);
                        if (executedPayment.state.ToLower() != "approved")
                        {
                            return(View("FailureView"));
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log("Error" + ex.Message);
                    return(View("FailureView"));
                }

                return(RedirectToAction("Index", "ThankYou"));
            }
        }
Ejemplo n.º 6
0
        //PLACE ORDER--LAST STEP
        public ActionResult PlaceOrder(FormCollection getCheckoutDetails)
        {
            int shpID = 1;

            if (db.ShippingDetails.Count() > 0)
            {
                shpID = db.ShippingDetails.Max(x => x.ShippingID) + 1;
            }
            int payID = 1;

            if (db.Payments.Count() > 0)
            {
                payID = db.Payments.Max(x => x.PaymentID) + 1;
            }
            int orderID = 1;

            if (db.Orders.Count() > 0)
            {
                orderID = db.Orders.Max(x => x.OrderID) + 1;
            }



            ShippingDetail shpDetails = new ShippingDetail();

            shpDetails.ShippingID = shpID;
            shpDetails.FirstName  = getCheckoutDetails["FirstName"];
            shpDetails.LastName   = getCheckoutDetails["LastName"];
            shpDetails.Email      = getCheckoutDetails["Email"];
            shpDetails.Mobile     = getCheckoutDetails["Mobile"];
            shpDetails.Address    = getCheckoutDetails["Address"];
            shpDetails.Province   = getCheckoutDetails["Province"];
            shpDetails.City       = getCheckoutDetails["City"];
            shpDetails.PostCode   = getCheckoutDetails["PostCode"];
            db.ShippingDetails.Add(shpDetails);
            db.SaveChanges();

            Payment pay = new Payment();

            pay.PaymentID = payID;
            pay.Type      = Convert.ToInt32(getCheckoutDetails["PayMethod"]);
            db.Payments.Add(pay);
            db.SaveChanges();

            Order o = new Order();

            o.OrderID     = orderID;
            o.CustomerID  = TempShpData.UserID;
            o.PaymentID   = payID;
            o.ShippingID  = shpID;
            o.Discount    = Convert.ToInt32(getCheckoutDetails["discount"]);
            o.TotalAmount = Convert.ToInt32(getCheckoutDetails["totalAmount"]);
            o.isCompleted = true;
            o.OrderDate   = DateTime.Now;
            db.Orders.Add(o);
            db.SaveChanges();

            foreach (var OD in TempShpData.items)
            {
                OD.OrderID = orderID;
                OD.Order   = db.Orders.Find(orderID);
                OD.Product = db.Products.Find(OD.ProductID);
                db.OrderDetails.Add(OD);
                db.SaveChanges();
            }


            return(RedirectToAction("Index", "ThankYou"));
        }
Ejemplo n.º 7
0
 public void Save()
 {
     _context.SaveChanges();
 }