public ActionResult RedirectFromPaypal() { NVPAPICaller payPalCaller = new NVPAPICaller(); string retMsg = ""; string token = ""; string PayerID = ""; NVPCodec decoder = new NVPCodec(); token = Session["token"].ToString(); bool ret = payPalCaller.GetCheckoutDetails(token, ref PayerID, ref decoder, ref retMsg); if (ret) { Session["payerId"] = PayerID; var myOrder = new Order(); myOrder.OrderDate = Convert.ToDateTime(decoder["TIMESTAMP"].ToString()); myOrder.Username = User.Identity.Name; //myOrder.FirstName = decoder["FIRSTNAME"].ToString(); //myOrder.LastName = decoder["LASTNAME"].ToString(); //myOrder.Address = decoder["SHIPTOSTREET"].ToString(); //myOrder.City = decoder["SHIPTOCITY"].ToString(); //myOrder.State = decoder["SHIPTOSTATE"].ToString(); //myOrder.PostalCode = decoder["SHIPTOZIP"].ToString(); //myOrder.Country = decoder["SHIPTOCOUNTRYCODE"].ToString(); //myOrder.Email = decoder["EMAIL"].ToString(); myOrder.Total = Convert.ToDecimal(decoder["AMT"].ToString()); // Verify total payment amount as set on CheckoutStart.aspx. try { decimal paymentAmountOnCheckout = Convert.ToDecimal(Session["payment_amt"].ToString()); decimal paymentAmoutFromPayPal = Convert.ToDecimal(decoder["AMT"].ToString()); if (paymentAmountOnCheckout != paymentAmoutFromPayPal) { Response.Redirect("CheckoutError.aspx?" + "Desc=Amount%20total%20mismatch."); } } catch (Exception) { Response.Redirect("CheckoutError.aspx?" + "Desc=Amount%20total%20mismatch."); } // Get DB context. peakzartEntities _db = new peakzartEntities(); // Add order to DB. _db.Orders.Add(myOrder); _db.SaveChanges(); // Get the shopping cart items and process them. ShoppingCart usersShoppingCart = new ShoppingCart(); List<Cart> myOrderList = usersShoppingCart.GetCartItems(); // Add OrderDetail information to the DB for each product purchased. for (int i = 0; i < myOrderList.Count; i++) { // Create a new OrderDetail object. var myOrderDetail = new OrderDetail(); myOrderDetail.OrderId = myOrder.OrderId; //myOrderDetail.Username = User.Identity.Name; myOrderDetail.ImageId = myOrderList[i].ImageId; myOrderDetail.Quantity = myOrderList[i].Count; myOrderDetail.UnitPrice =Convert.ToDecimal(myOrderList[i].ImageDetail.Price); // Add OrderDetail to DB. _db.OrderDetails.Add(myOrderDetail); _db.SaveChanges(); } // Set OrderId. Session["currentOrderId"] = myOrder.OrderId; // Display Order information. List<Order> orderList = new List<Order>(); orderList.Add(myOrder); } return View(); }
private void SaveOrder() { ApplicationCart cartTets = (ApplicationCart)Session["Cart"]; var cartes = ShoppingCart.GetCart(this.HttpContext); var critems = cartes.GetCartItems(); List<DAL.OrderDetail> ItemsView = new List<DAL.OrderDetail>(); foreach (DAL.Cart drAC in critems) { OrderDetail objACT = new OrderDetail(); objACT.ImageId = drAC.ImageId; objACT.Quantity = drAC.Count; objACT.UnitPrice = Convert.ToDecimal(drAC.ImageDetail.PDT_Price); ItemsView.Add(objACT); } peakzartEntities db = new DAL.peakzartEntities(); Order newRecord = new Order(); newRecord.Username = cartes.GetSessionUserName(); newRecord.Tracking_REF_ID = cartTets.Id.ToString(); newRecord.OrderDate = System.DateTime.Now; newRecord.Total = cartTets.TotalPrice; newRecord.Currency = cartTets.Currency; newRecord.Description = cartTets.PurchaseDescription; newRecord.OrderDetails = ItemsView; db.Orders.Add(newRecord); db.SaveChanges(); }