예제 #1
0
        protected void OrderHistory_DataBound(object sender, EventArgs e)
        {
            ProductContext _db = new ProductContext();
            Order order = new Order();

            for (int i = 0; i < OrderHistory.Rows.Count; i++)
            {
                int id = int.Parse(OrderHistory.Rows[i].Cells[0].Text);
                order = _db.Orders.Find(id);
                if (order.PaymentTransactionId == null)
                {
                    OrderHistory.Rows[i].Visible = false;
                }
            }
        }
예제 #2
0
        public int GetUnitSold(int Id)
        {
            ProductContext _db = new ProductContext();
            Order order = new Order();
            int quantity = 0;
            List<OrderDetail> lst = _db.OrderDetails.Where(p => p.ProductId == Id).ToList();
            foreach (var item in lst)
            {
                order = _db.Orders.Where(p => p.OrderId == item.OrderId).FirstOrDefault();
                if (order.PaymentTransactionId != null)
                {
                    quantity += item.Quantity;
                }

            }
            return quantity;
        }
예제 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                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.
                    ProductContext _db = new ProductContext();

                    // Add order to DB.
                    _db.Orders.Add(myOrder);
                    _db.SaveChanges();

                    // Get the shopping cart items and process them.
                    using (MenStore.Logic.ShoppingCartActions usersShoppingCart = new MenStore.Logic.ShoppingCartActions())
                    {
                        List<CartItem> 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.ProductId = myOrderList[i].ProductId;
                            myOrderDetail.Quantity = myOrderList[i].Quantity;
                            myOrderDetail.UnitPrice = Math.Round((double)(myOrderList[i].Product.UnitPrice - (myOrderList[i].Product.UnitPrice * myOrderList[i].Product.Discount)), 2);

                            // Add OrderDetail to DB.
                            //Product p = _db.Products.Find(myOrderList[i].ProductId);
                            ////set units in stock and unlock units
                            //p.UnitsLock -= myOrderList[i].Quantity;
                            //p.UnitInStock -= myOrderList[i].Quantity;
                            _db.OrderDetails.Add(myOrderDetail);
                            _db.SaveChanges();
                        }

                        // Set OrderId.
                        Session["currentOrderId"] = myOrder.OrderId;

                        // Display Order information.
                        List<Order> orderList = new List<Order>();
                        orderList.Add(myOrder);
                        ShipInfo.DataSource = orderList;
                        ShipInfo.DataBind();

                        // Display OrderDetails.
                        OrderItemList.DataSource = myOrderList;
                        OrderItemList.DataBind();
                    }
                }
                else
                {
                    Response.Redirect("CheckoutError.aspx?" + retMsg);
                }
            }
        }
예제 #4
0
        internal double GetCashCollected(int id)
        {
            ProductContext _db = new ProductContext();
            Order order = new Order();
            double cash = 0.00;
            List<OrderDetail> lst = _db.OrderDetails.Where(p => p.ProductId == id).ToList();
            foreach (var item in lst)
            {
                order = _db.Orders.Where(p => p.OrderId == item.OrderId).FirstOrDefault();
                if (order.PaymentTransactionId != null)
                {
                    cash += (double)(item.UnitPrice * item.Quantity);
                }

            }
            return cash;
        }