public void Dispose()
 {
     if (_db != null)
     {
         _db.Dispose();
         _db = null;
     }
 }
Beispiel #2
0
 public IQueryable<Category> GetCategories()
 {
     //get an instance of the database
     var db = new WingtipToys.Models.ProductContext();
     //create and retur a queryable(as a set of data result)
     IQueryable<Category> query = db.Categories;
     return query;
 }
 public IQueryable<Product> GetProducts([QueryString("id")] int? categoryId, [RouteData] string categoryName)
 {
     var _db = new ProductContext();
     IQueryable<Product> query = _db.Products;
     if (categoryId.HasValue && categoryId > 0)
         query = query.Where(p => p.CategoryID == categoryId);
     if (!string.IsNullOrEmpty(categoryName))
         query = query.Where(p => string.Compare(p.Category.CategoryName, categoryName) == 0);
     return query;
 }
 public IQueryable<Product> GetProducts([QueryString("id")] int? categoryId)
 {
     var _db = new WingtipToys.Models.ProductContext();
     IQueryable<Product> query = _db.Products;
     if (categoryId.HasValue && categoryId > 0)
     {
         query = query.Where(p => p.CategoryID == categoryId);
     }
     return query;
 }
 public IQueryable<Product> GetProduct([QueryString("productID")] int? productId, [RouteData] string productName)
 {
     var _db = new ProductContext();
     IQueryable<Product> query = _db.Products;
     if (productId.HasValue && productId > 0)
         query = query.Where(p => p.ProductID == productId);
     else if (!string.IsNullOrEmpty(productName))
         query = query.Where(p => string.Compare(p.ProductName, productName) == 0);
     else
         query = null;
     return query;
 }
 // The return type can be changed to IEnumerable, however to support
 // paging and sorting, the following parameters must be added:
 //     int maximumRows
 //     int startRowIndex
 //     out int totalRowCount
 //     string sortByExpression
 public IQueryable<Category> GetCategories()
 {
     try
     {
         var _db = new WingtipToys.Models.ProductContext();
         IQueryable<Category> query = _db.Categories;
         return query;
     }
     catch(Exception exp)
     {
         throw;
     }
 }
 public IQueryable<Product> GetProduct([QueryString("productID")]int? productId)
 {
     var _db = new WingtipToys.Models.ProductContext();
     IQueryable<Product> query = _db.Products;
     if (productId.HasValue && productId > 0)
     {
         query = query.Where(p => p.ProductID == productId);
     }
     else
     {
         query = null;
     }
     return query;
 }
Beispiel #8
0
 public bool AddProduct(string ProductName, string ProductDesc,
     string ProductPrice, string ProductCategory, string ProductImagePath)
 {
     var myProduct = new Product();
     myProduct.ProductName = ProductName;
     myProduct.Description = ProductDesc;
     myProduct.UnitPrice = Convert.ToDouble(ProductPrice);
     myProduct.ImagePath = ProductImagePath;
     myProduct.CategoryID = Convert.ToInt32(ProductCategory);
     using (ProductContext _db = new ProductContext())
     {
         _db.Products.Add(myProduct);
         _db.SaveChanges();
     }
     return true;
 }
        protected void RemoveProductButton_Click(object sender, EventArgs e)
        {
            using (var _db=new WingtipToys.Models.ProductContext())
            {
                int productId = Convert.ToInt16(DropDownRemoveProduct.SelectedValue);
                var myItem = (from c in _db.Products where c.ProductID == productId select c).FirstOrDefault();
                if (myItem != null)
                {
                    _db.Products.Remove(myItem);
                    _db.SaveChanges();

                    // Reload the page.
                    string pageUrl = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Count() - Request.Url.Query.Count());
                    Response.Redirect(pageUrl + "?ProductAction=remove");
                }
                else
                    LabelRemoveStatus.Text = "Unable to locate product.";
            }
        }
Beispiel #10
0
        // Added after custom url routing parameter: [RouteData] string productName
        public IQueryable <Product> GetProducts([QueryString("productID")] int?productId, [RouteData] string productName)
        {
            var _db = new WingtipToys.Models.ProductContext();
            IQueryable <Product> query = _db.Products;

            if (productId.HasValue && productId > 0)
            {
                query = query.Where(p => p.ProductID == productId);
            }
            // Added after custom url routing
            else if (!String.IsNullOrEmpty(productName))
            {
                query = query.Where(p => String.Compare(p.ProductName, productName) == 0);
            }
            else
            {
                query = null;
            }
            return(query);
        }
Beispiel #11
0
        public IQueryable <Product> GetProducts(
            [QueryString("id")] int?categoryId,
            [RouteData] string categoryName)
        {
            var _db = new WingtipToys.Models.ProductContext();
            IQueryable <Product> query = _db.Products;

            if (categoryId.HasValue && categoryId > 0)
            {
                query = query.Where(p => p.CategoryID == categoryId);
            }

            if (!String.IsNullOrEmpty(categoryName))
            {
                query = query.Where(p =>
                                    String.Compare(p.Category.CategoryName,
                                                   categoryName) == 0);
            }
            return(query);
        }
Beispiel #12
0
        protected void RemoveProductButton_Click(object sender, EventArgs e)
        {
            var db        = new WingtipToys.Models.ProductContext();
            int productId = Convert.ToInt16(DropDownRemoveProduct.SelectedValue);
            var myItem    = (from c in db.Products where c.ProductID == productId select c).FirstOrDefault();

            if (myItem != null)
            {
                db.Products.Remove(myItem);
                db.SaveChanges();

                // Reload the page.
                string pageUrl = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Count() - Request.Url.Query.Count());
                Response.Redirect(pageUrl + "?ProductAction=remove");
            }
            else
            {
                LabelRemoveStatus.Text = "Unable to locate product.";
            }
        }
Beispiel #13
0
 public void UpdateItem(string updateCartID, int updateProductID, int quantity)
 {
     using (var _db = new WingtipToys.Models.ProductContext())
     {
         try
         {
             var myItem = (from c in _db.ShoppingCartItems
                           where c.CartId == updateCartID && c.Product.ProductID == updateProductID
                           select c).FirstOrDefault();
             if (myItem != null)
             {
                 myItem.Quantity = quantity;
                 _db.SaveChanges();
             }
         } catch (Exception e)
         {
             throw new Exception("ERROR: Unable to Update Cart Item - " + e.Message.ToString(), e);
         }
     }
 }
Beispiel #14
0
 public void RemoveItem(string removeCartID, int removeProductID)
 {
     using (var _db = new WingtipToys.Models.ProductContext())
     {
         try
         {
             var myItem = (from c in _db.ShoppingCartItems where c.CartId == removeCartID && c.Product.ProductID == removeProductID select c).FirstOrDefault();
             if (myItem != null)
             {
                 // Loại bỏ mục.
                 _db.ShoppingCartItems.Remove(myItem);
                 _db.SaveChanges();
             }
         }
         catch (Exception exp)
         {
             throw new Exception("ERROR: Unable to Remove Cart Item - " + exp.Message.ToString(), exp);
         }
     }
 }
 public IQueryable<Product> GetProduct(
                     [QueryString("ProductID")] int? productId,
                     [RouteData] string productName)
 {
   var _db = new WingtipToys.Models.ProductContext();
   IQueryable<Product> query = _db.Products;
   if (productId.HasValue && productId > 0)
   {
     query = query.Where(p => p.ProductID == productId);
   }
   else if (!String.IsNullOrEmpty(productName))
   {
     query = query.Where(p =>
               String.Compare(p.ProductName, productName) == 0);
   }
   else
   {
     query = null;
   }
   return query;
 }
Beispiel #16
0
        public void UpdateShoppingCartDatabase(String cartId,
                                               ShoppingCartUpdates[] CartItemUpdates)
        {
            using (var db = new WingtipToys.Models.ProductContext())
            {
                try
                {
                    var cart = GetCartItems();

                    foreach (var cartItem in cart)
                    {
                        //comparing items in the cart with the amount of updates to be done
                        for (int i = 0; i < CartItemUpdates.Count(); i++)
                        {
                            //when the items match against each other(cart and updates)
                            if (cartItem.Product.ProductID == CartItemUpdates[i].ProductId)
                            {
                                //if update is set for removal
                                if (CartItemUpdates[i].PurchaseQuantity < 1 ||
                                    CartItemUpdates[i].RemoveItem == true)
                                {
                                    RemoveItem(cartId, cartItem.ProductId);
                                }
                                else
                                {
                                    UpdateItem(cartId, cartItem.ProductId,
                                               CartItemUpdates[i].PurchaseQuantity);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception("ERROR: Unable to Update Cart Database - " +
                                        ex.Message, ex);
                }
            }
        }
        public IQueryable <Product> GetProduct(
            [QueryString("ProductID")] int?productId,
            [RouteData] string productName)
        {
            var    _db = new WingtipToys.Models.ProductContext();
            String StockText;
            IQueryable <Product> query = _db.Products;

            if (productId.HasValue && productId > 0)
            {
                query = query.Where(p => p.ProductID == productId);
            }
            else if (!String.IsNullOrEmpty(productName))
            {
                query = query.Where(p =>
                                    String.Compare(p.ProductName, productName) == 0);
            }
            else
            {
                query = null;
            }
            foreach (var product in query)
            {
                if (product.Stock > 10)
                {
                    stock.Text = "More than 10 available";
                }
                else if (product.Stock < 0)
                {
                    stock.Text = "On back order";
                }
                else
                {
                    stock.Text = "Less than 10 available";
                }
            }
            return(query);
        }
 public void UpdateShoppingCartDatabase(String cartId, ShoppingCartUpdates[]
                                        CartItemUpdates)
 {
     using (var db = new WingtipToys.Models.ProductContext())
     {
         try
         {
             int             CartItemCount = CartItemUpdates.Count();
             List <CartItem> myCart        = GetCartItems();
             foreach (var cartItem in myCart)
             {
                 // Iterate through all rows within shopping cart list
                 for (int i = 0; i < CartItemCount; i++)
                 {
                     if (cartItem.Product.ProductID == CartItemUpdates[i].ProductId)
                     {
                         if (CartItemUpdates[i].PurchaseQuantity < 1 ||
                             CartItemUpdates[i].RemoveItem == true)
                         {
                             RemoveItem(cartId, cartItem.ProductId);
                         }
                         else
                         {
                             UpdateItem(cartId, cartItem.ProductId,
                                        CartItemUpdates[i].PurchaseQuantity);
                         }
                     }
                 }
             }
         }
         catch (Exception exp)
         {
             throw new Exception("ERROR: Unable to Update Cart Database - " +
                                 exp.Message.ToString(), exp);
         }
     }
 }
        public string UpdateFood(int id, Product product)
        {
            try
            {
                var _db = new WingtipToys.Models.ProductContext();

                //Fetch object from db
                Product f = _db.Products.Find(id);


                f.ProductName = product.ProductName;
                f.UnitPrice   = product.UnitPrice;
                f.CategoryID  = product.CategoryID;
                f.Description = product.Description;
                f.ImagePath   = product.ImagePath;

                _db.SaveChanges();
                return(product.ProductName + " was succesfully updated");
            }
            catch (Exception e)
            {
                return("Error:" + e);
            }
        }
        public void UpdateShoppingCartDatabase(String cartId, ShoppingCartUpdates[] CartItemUpdates)
        {
            using (var db = new WingtipToys.Models.ProductContext()) ;
            {
                try
                {
                    int CartItemCount = CartItemUpdates.Count();

                    List<CartItem> myCart = GetCartItems();

                    foreach (var cartItem in myCart)
                    {
                        // Iterate through allrows within shopping cart list
                        for (int i = 0; i < CartItemCount; i++)
                        {
                            if (cartItem.Product.ProductID == CartItemUpdates[i].ProductId)
                            {
                                if (CartItemUpdates[i].PurchaseQuantity < 1 || CartItemUpdates[i].RemoveItem == true)
                                {
                                    RemoveItem(cartId, cartItem.ProductId);
                                }

                                else
                                {
                                    UpdateItem(cartId, cartItem.ProductId, CartItemUpdates[i].PurchaseQuantity);
                                }
                            }
                        }
                    }
                }
                catch (Exception exp)
                {

                    throw new Exception("ERROR: Unable to update cart database - " + exp.Message.ToString(), exp);
                }
            }
        }
Beispiel #21
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();

                bool ret = true;
                if (ret)
                {
                    Session["payerId"] = PayerID;
                    string AMT = Session["payment_amt"].ToString();

                    // Verify total payment amount as set on CheckoutStart.aspx.
                    try
                    {
                        decimal paymentAmountOnCheckout = Convert.ToDecimal(Session["payment_amt"].ToString());
                        decimal paymentAmoutFromPayPal = Convert.ToDecimal(AMT);
                        if (paymentAmountOnCheckout != paymentAmoutFromPayPal)
                        {
                            Response.Redirect("CheckoutError.aspx?" + "Desc=Amount%20total%20mismatch.");
                        }
                    }
                    catch (Exception)
                    {
                        Response.Redirect("CheckoutError.aspx?" + "Desc=Amount%20total%20mismatch.");
                    }

                    // Get the shopping cart items and process them.
                    using (WingtipToys.Logic.ShoppingCartActions usersShoppingCart = new WingtipToys.Logic.ShoppingCartActions())
                    {
                        List<CartItem> myOrderList = usersShoppingCart.GetCartItems();

                        // Display Order information.
                        List<Order> orderList = new List<Order>();
                        using (ProductContext _db = new ProductContext())
                        {
                            int id = Convert.ToInt32(Session["currentOrderId"].ToString());
                            Order myOrder = _db.Orders.Where(order => order.OrderId == id).First();
                            if (myOrder != null)
                            {
                                orderList.Add(myOrder);
                            }
                        }
                        ShipInfo.DataSource = orderList;
                        ShipInfo.DataBind();

                        // Display OrderDetails.
                        OrderItemList.DataSource = myOrderList;
                        OrderItemList.DataBind();
                    }
                }
                else
                {
                    Response.Redirect("CheckoutError.aspx?" + retMsg);
                }
            }
        }
        protected void CheckoutConfirm_Click(object sender, EventArgs e)
        {
            Session["payerId"] = "";

            var myOrder = new Order();

            string AMT = Session["payment_amt"].ToString();

            myOrder.OrderDate = DateTime.Now;
            myOrder.Username = User.Identity.Name;
            myOrder.FirstName = TextBoxFN.Text;
            myOrder.LastName = TextBoxSN.Text;
            myOrder.Address = TextBoxAddress.Text;
            myOrder.City = TextBoxCity.Text;
            myOrder.State = TextBoxZone.Text;
            myOrder.PostalCode = TextBoxIndex.Text;
            myOrder.Country = TextBoxZone.Text;
            myOrder.Email = TextBoxMail.Text;

            myOrder.Phone = TextBoxPhone.Text;
            myOrder.PaymentTransactionId = "1";
            myOrder.OrderDetails = new List<OrderDetail>();
            myOrder.DSID = 1;

            myOrder.Total = Convert.ToDecimal(AMT);

            // Verify total payment amount as set on CheckoutStart.aspx.
            try
            {
                decimal paymentAmountOnCheckout = Convert.ToDecimal(Session["payment_amt"].ToString());
                decimal paymentAmoutFromPayPal = Convert.ToDecimal(AMT);
                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 (WingtipToys.Logic.ShoppingCartActions usersShoppingCart = new WingtipToys.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 = myOrderList[i].Product.UnitPrice;

                    // Add OrderDetail to DB.
                    //myOrder.OrderDetails.Add(myOrderDetail);
                    _db.OrderDetails.Add(myOrderDetail);
                    _db.SaveChanges();
                }

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

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

            //_db.Orders.Add(myOrder);
            //_db.SaveChanges();

            Response.Redirect("CheckoutReview.aspx");
        }
Beispiel #23
0
        void SupplierSystemConfirm(int systemID, int reserveID)
        {
            bool result = false;

            using (ProductContext _db = new ProductContext())
            {
                SupplierSystem system = _db.SupplierSystems.Where(a => a.ID == systemID).First();
                if (system != null)
                {
                    try
                    {
                        ISupplyRequest svr = (ISupplyRequest)Activator.GetObject(typeof(ISupplyRequest), system.ConnectionString);
                        result = svr.ConfirmReserve(reserveID);
                    }
                    catch (Exception) { }
                }
            }

            if (!result)
            {
                throw new ExceptionSupplierSystemConfirmFail();
            }
        }
 public IQueryable GetProducts()
 {
     var _db = new WingtipToys.Models.ProductContext();
     IQueryable query = _db.Products;
     return query;
 }
Beispiel #25
0
        Tuple<int, int> DeliveryServicesSurvey(DateTime time)
        {
            int timeOut = 100;
            offDeliveryService = true;
            Tuple<int, int> result = null;

            resultDeliveryServiceGlobal = null;
            using (ProductContext _db = new ProductContext())
            {
                foreach (var system in _db.DeliveryServices)
                {
                    object[] parameters = new object[] { system.ID,
                                                         system.ConnectionString,
                                                         time };

                    Thread thread = new Thread(DeliveryServiceSurvey);
                    thread.Start(parameters);
                }
            }

            for (int i = 0; i < 20 && null == result; ++i)
            {
                Thread.Sleep(timeOut);
                lock (lockDeliveryService)
                {
                    result = resultDeliveryServiceGlobal;
                }
            }

            if (null == result)
            {
                if (offDeliveryService)
                {
                    throw new ExceptionDeliveryServiceOff();
                }
                else
                {
                    throw new ExceptionDeliveryServiceWrongTime();
                }
            }
            Console.WriteLine("  resultDeliveryService={0}:{1}", result.Item1, result.Item2);

            return result;
        }
Beispiel #26
0
 public IQueryable<Category> GetCategories()
 {
     var _db = new WingtipToys.Models.ProductContext();
     IQueryable<Category> query = _db.Categories;
     return query;
 }
        public void RemoveItem(string removeCartID, int removeProductID)
        {
            using (var _db = new WingtipToys.Models.ProductContext())
            {
                try
                {
                    var myItem = (from c in _db.ShoppingCartItems where c.CartId == removeCartID && c.Product.ProductID == removeProductID select c).FirstOrDefault();

                    if (myItem != null)
                    {
                        // Remove Item
                        _db.ShoppingCartItems.Remove(myItem);
                        _db.SaveChanges();
                    }
                }

                catch (Exception exp)
                {
                    throw new Exception("ERROR: Unable to remove cart item - " + exp.Message.ToString(), exp);
                }
            }
        }
Beispiel #28
0
 public IQueryable<Product> GetProducts()
 {
     var db = new WingtipToys.Models.ProductContext();
     IQueryable<Product> query = db.Products;
     return query;
 }
Beispiel #29
0
        protected void Page_Load()
        {
            if (!IsPostBack)
            {
                // Determine the sections to render
                UserManager manager = new UserManager();
                if (HasPassword(manager))
                {
                    changePasswordHolder.Visible = true;
                }
                else
                {
                    setPassword.Visible = true;
                    changePasswordHolder.Visible = false;
                }
                CanRemoveExternalLogins = manager.GetLogins(User.Identity.GetUserId()).Count() > 1;

                // Render success message
                var message = Request.QueryString["m"];
                if (message != null)
                {
                    // Strip the query string from action
                    Form.Action = ResolveUrl("~/Account/Manage");

                    SuccessMessage =
                        message == "ChangePwdSuccess" ? "Your password has been changed."
                        : message == "SetPwdSuccess" ? "Your password has been set."
                        : message == "RemoveLoginSuccess" ? "The account was removed."
                        : String.Empty;
                    successMessage.Visible = !String.IsNullOrEmpty(SuccessMessage);
                }
            }

            {
                string UserName = User.Identity.GetUserName();
                Order[] orders = null;
                Product[] products = null;
                OrderDetail[] orderDetail = null;
                using (ProductContext _db = new ProductContext())
                {
                    orders = _db.Orders.Where(o => o.Username == UserName).ToArray();
                    products = _db.Products.ToArray();
                    orderDetail = _db.OrderDetails.ToArray();
                }

                if (orders != null && 0 < orders.Length)
                {
                    foreach (Order elem in orders)
                    {
                        int id = elem.OrderId;
                        OrderDetail[] ds = orderDetail.Where(p => p.OrderId == id).ToArray();
                        if (ds != null)
                        {
                            elem.OrderDetails.AddRange(ds);
                        }
                        elem.OrderDetails = elem.OrderDetails.Distinct().ToList();
                    }

                    TableOrders.Visible = true;

                    TableRow row;
                    TableCell cell;

                    {
                        row = new TableRow();

                        cell = new TableCell();
                        cell.Text = "Номер заказа";
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        cell.Text = "Дата";
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        cell.Text = "Товар[Количество]";
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        cell.Text = "Итого";
                        row.Cells.Add(cell);

                        TableOrders.Rows.Add(row);
                    }

                    int count = orders.Length;
                    for (int i = 0; i < count; ++i)
                    {
                        row = new TableRow();

                        cell = new TableCell();
                        cell.Text = orders[i].OrderId.ToString();
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        cell.Text = orders[i].OrderDate.ToString();
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        List<OrderDetail> details = orders[i].OrderDetails;
                        cell.Text = string.Empty;
                        if (details != null)
                        {
                            foreach (OrderDetail d in details)
                            {
                                Product product = products.Where(p => p.ProductID == d.ProductId).First();
                                if (product != null)
                                {
                                    cell.Text += string.Format("{0}[{1}], ", product.ProductName, d.Quantity);
                                }
                                else
                                {
                                    cell.Text += string.Format("{0}[{1}], ", d.ProductId, d.Quantity);
                                }
                            }
                        }
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        cell.Text = orders[i].Total.ToString();
                        row.Cells.Add(cell);

                        TableOrders.Rows.Add(row);
                    }
                }
                else
                {
                    TableOrders.Visible = false;
                }
            }

            /*
            {
                string UserName = User.Identity.GetUserName();
                using (WingtipToys.Logic.ShoppingCartActions usersShoppingCart = new WingtipToys.Logic.ShoppingCartActions())
                {
                    List<CartItem> myOrderList = usersShoppingCart.GetCartItems();

                    // Display Order information.
                    List<Order> orderList = new List<Order>();
                    using (ProductContext _db = new ProductContext())
                    {
                        Order[] myOrders = _db.Orders.Where(o => o.Username == UserName).ToArray();
                        if (myOrders != null)
                        {
                            orderList.AddRange(myOrders);
                        }
                    }

                    // Display OrderDetails.
                    OrderItemList.DataSource = myOrderList;
                    OrderItemList.DataBind();
                }
            }
            */
        }
Beispiel #30
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
              {
            // Verify user has completed the checkout process.
            if ((string)Session["userCheckoutCompleted"] != "true")
            {
              Session["userCheckoutCompleted"] = string.Empty;
              Response.Redirect("CheckoutError.aspx?" + "Desc=Unvalidated%20Checkout.");
            }

            NVPAPICaller payPalCaller = new NVPAPICaller();

            string retMsg = "";
            string token = "";
            string finalPaymentAmount = "";
            string PayerID = "";
            NVPCodec decoder = new NVPCodec();

            token = string.Empty; // Session["token"].ToString();
            PayerID = Session["payerId"].ToString();
            finalPaymentAmount = Session["payment_amt"].ToString();

            //bool ret = payPalCaller.DoCheckoutPayment(finalPaymentAmount, token, PayerID, ref decoder, ref retMsg);
            bool ret = true;
            if (ret)
            {
              // Retrieve PayPal confirmation value.

              ProductContext _db = new ProductContext();
              // Get the current order id.
              int currentOrderId = -1;
              if (Session["currentOrderId"] != string.Empty)
              {
            currentOrderId = Convert.ToInt32(Session["currentOrderID"]);
              }
              Order myCurrentOrder;
              if (currentOrderId >= 0)
              {
            // Get the order based on order id.
            myCurrentOrder = _db.Orders.Single(o => o.OrderId == currentOrderId);
            // Update the order to reflect payment has been completed.
            myCurrentOrder.PaymentTransactionId = string.Empty;
            // Save to DB.
            _db.SaveChanges();
              }

              // Clear shopping cart.
              using (WingtipToys.Logic.ShoppingCartActions usersShoppingCart =
              new WingtipToys.Logic.ShoppingCartActions())
              {
            usersShoppingCart.EmptyCart();
              }

              // Clear order id.
              Session["currentOrderId"] = string.Empty;
            }
            else
            {
              Response.Redirect("CheckoutError.aspx?" + retMsg);
            }
              }
        }
Beispiel #31
0
        public IQueryable <Category> GetCategories()
        {
            var _db = new WingtipToys.Models.ProductContext();

            return(_db.Categories);
        }
 public void UpdateItem(string CartID, int ProdID, int qty)
 {
     using (var db = new WingtipToys.Models.ProductContext())
     {
         try
         {
             var myItem = (from c in db.ShoppingCartItems where c.CartID == CartID && c.Product.ProductID == ProdID select c).FirstOrDefault();
             if (myItem != null)
             {
                 myItem.Quantity = qty;
                 db.SaveChanges();
             }
         }
         catch (Exception)
         {
             throw;
         }
     }
 }
 public void RemoveItem(string remvCartID, int remvProdID)
 {
     using (var db = new WingtipToys.Models.ProductContext())
     {
         try
         {
             var myItem = (from c in db.ShoppingCartItems where c.CartID == remvCartID && c.Product.ProductID == remvProdID select c).FirstOrDefault();
             if (myItem != null)
             {
                 db.ShoppingCartItems.Remove(myItem);
                 db.SaveChanges();
             }
         }
         catch (Exception)
         {
             throw;
         }
     }
 }
 public void UpdateItem(string updateCartID, int updateProductID, int quantity)
 {
     using (var _db = new WingtipToys.Models.ProductContext())
     {
         try
         {
             var myItem = (from c in _db.ShoppingCartItems where c.CartId == updateCartID && c.Product.ProductID == updateProductID select c).FirstOrDefault();
             if (myItem != null)
             {
                 myItem.Quantity = quantity;
                 _db.SaveChanges();
             }
         }
         catch (Exception exp)
         {
             throw new Exception("ERROR: Unable to Update Cart Item - " + exp.Message.ToString(), exp);
         }
     }
 }
Beispiel #35
0
        //finds an returns the link to next required product category
        public Category GetNextTestCategory()
        {
            var      _db   = new WingtipToys.Models.ProductContext();
            Category query = _db.Categories.SingleOrDefault(Category => Category.CategoryName == "Mainboards");

            ShoppingCartActions actions = new ShoppingCartActions();
            List <CartItem>     items   = actions.GetCartItems();

            List <Product> products = new List <Product>();

            foreach (CartItem item in items)
            {
                //System.Diagnostics.Debug.WriteLine("Add " + item.Product.ProductName + " " + item.Product.ProductID);
                //System.Diagnostics.Debug.WriteLine("Aus DB geholt: " + (_db.Products.SingleOrDefault(Product => Product.ProductID == item.Product.ProductID).ProductName));
                products.Add(_db.Products.SingleOrDefault(Product => Product.ProductID == item.Product.ProductID));
            }


            Boolean hasProcessor     = false;
            Boolean hasMainboard     = false;
            Boolean hasGraphicsCards = false;
            Boolean hasHardDrive     = false;
            Boolean hasCase          = false;

            Boolean isFinished = true;

            if (!items.Any())
            {
                return(query);
            }
            else
            {
                foreach (Product product in products)
                {
                    //System.Diagnostics.Debug.WriteLine(product.ProductName + " " + product.CategoryID);

                    switch (product.CategoryID)
                    {
                    case 1:
                        System.Diagnostics.Debug.WriteLine("has Mainboard = true");
                        hasMainboard = true;
                        break;

                    case 2:
                        System.Diagnostics.Debug.WriteLine("has Processor = true");
                        hasProcessor = true;
                        break;

                    case 3:
                        System.Diagnostics.Debug.WriteLine("has GraphicsCard = true");
                        hasGraphicsCards = true;
                        break;

                    case 4:
                        System.Diagnostics.Debug.WriteLine("has HardDrive = true");
                        hasHardDrive = true;
                        break;

                    case 5:
                        System.Diagnostics.Debug.WriteLine("has Case = true");
                        hasCase = true;
                        break;

                    default:
                        Response.Redirect("Configurator.aspx");
                        break;
                    }
                }


                if (!hasMainboard)
                {
                    // System.Diagnostics.Debug.WriteLine("Kein Prozessor!");
                    return(query);
                }
                else if (!hasProcessor)
                {
                    //  System.Diagnostics.Debug.WriteLine("Keine Grafikkarte!");
                    query = _db.Categories.SingleOrDefault(Category => Category.CategoryName == "Processors");
                    return(query);
                }
                else if (!hasGraphicsCards)
                {
                    //  System.Diagnostics.Debug.WriteLine("Kein Mainboard!");
                    query = _db.Categories.SingleOrDefault(Category => Category.CategoryName == "GraphicsCards");
                    return(query);
                }
                else if (!hasHardDrive)
                {
                    //  System.Diagnostics.Debug.WriteLine("Keine HardDrives!");
                    query = _db.Categories.SingleOrDefault(Category => Category.CategoryName == "HardDrives");
                    return(query);
                }
                else if (!hasCase)
                {
                    //  System.Diagnostics.Debug.WriteLine("Keine Cases!");
                    query = _db.Categories.SingleOrDefault(Category => Category.CategoryName == "Cases");
                    return(query);
                }
                else
                {
                    query = _db.Categories.SingleOrDefault(Category => Category.CategoryName == "KeyboardsAndMouses");
                    return(query);
                }
            }
        }
Beispiel #36
0
        Tuple<int, int> SupplierSystemsSurvey(Good[] itemIDAndCount)
        {
            int timeOut = 100;
            offSupplierSystem = true;
            Tuple<int, int> result = null;

            resultSupplierSystemGlobal = null;
            using (ProductContext _db = new ProductContext())
            {
                foreach (var system in _db.SupplierSystems)
                {
                    object[] parameters = new object[] { system.ID,
                                                         system.ConnectionString,
                                                         itemIDAndCount };

                    Thread thread = new Thread(SupplierSystemSurvey);
                    thread.Start(parameters);
                }
            }

            for (int i = 0; i < 20 && null == result; ++i)
            {
                Thread.Sleep(timeOut);
                lock (lockSupplierSystem)
                {
                    result = resultSupplierSystemGlobal;
                }
            }

            if (null == result)
            {
                if (offSupplierSystem)
                {
                    throw new ExceptionSupplierSystemOff();
                }
                else
                {
                    throw new ExceptionSupplierSystemNotGood();
                }
            }
            Console.WriteLine("  resultSupplierSystem={0}:{1}", result.Item1, result.Item2);

            return result;
        }
Beispiel #37
0
        public IQueryable <Product> GetProducts(
            [QueryString("id")] int?categoryId,
            [RouteData] string categoryName)
        {
            var _db = new WingtipToys.Models.ProductContext();

            bool isIntel = false;
            bool isAmd   = false;

            ShoppingCartActions actions = new ShoppingCartActions();
            List <CartItem>     items   = actions.GetCartItems();

            List <Product> products = new List <Product>();

            foreach (CartItem item in items)
            {
                products.Add(_db.Products.SingleOrDefault(Product => Product.ProductID == item.Product.ProductID));
            }

            //Filtere nach Mainboards
            List <Product> processors = new List <Product>();

            foreach (Product product in products)
            {
                if (product.CategoryID == 2)
                {
                    processors.Add(product);
                }
            }
            IQueryable <Product> query = _db.Products;

            query = query.Where(p => p.CategoryID == 1);
            if (processors.Any())
            {
                foreach (Product processor in processors)
                {
                    if (processor.isIntel)
                    {
                        isIntel = true;
                    }
                    if (processor.isAmd)
                    {
                        isAmd = true;
                    }
                }

                if (isIntel == false && isAmd == true)
                {
                    query = query.Where(p => p.isAmd == true);
                }
                else if (isIntel == true && isAmd == false)
                {
                    query = query.Where(p => p.isIntel == true);
                }
                else if (isIntel == false && isAmd == false)
                {
                    query = query.Where(p => p.isIntel == false);
                    query = query.Where(p => p.isAmd == false);
                } //Falls beide true, dann einfach alles zurueckgeben
            }

            return(query);
        }
        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.Uername = 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 checkout start.aspx.
                    try
                    {
                        decimal paymentAmountOnCheckout = Convert.ToDecimal( Session["payment_amt"].ToString() );
                        decimal paymentAmountFromPayPal = Convert.ToDecimal( decoder["AMT"].ToString() );
                        if (paymentAmountOnCheckout != paymentAmountFromPayPal)
                        {
                            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 (WingtipToys.Logic.ShoppingCartActions usersShoppingCart = new WingtipToys.Logic.ShoppingCartActions())
                    {
                        List<CartItem> myOrderList = usersShoppingCart.GetCartItems();

                        //add oderdetail info to the db for each product purchased
                        for (int i= 0; i < myOrderList.Count; i++)
                        {
                            //create new order detail 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 = myOrderList[i] .Product.UnitPrice;

                            // add orderdetail to db
                            _db.OrderDetails.Add(myOrderDetail);
                            _db.SaveChanges();
                        }
                        // set order id
                        Session["currentOrderId"] = myOrder.OrderId;

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

                        //display order detail
                        OrderItemList.DataSource = myOrderList;
                        OrderItemList.DataBind();
                    }
                }
                else
                {
                    Response.Redirect("CheckoutError.aspx?" + retMsg);
                }
            }
        }
Beispiel #39
0
        protected void updateProductName_ServerValidate(object sender, ServerValidateEventArgs e)
        {
            //String connectionString = @"Data Source=DESKTOP-S3P3TBM\SQLEXPRESS;Initial Catalog=wingtiptoys.mdf;Integrated Security=True";
            string connectionString = "Data Source=MYLAPTOP\\SQLEXPRESS;Database=wingtiptoys.mdf;Integrated Security=True";
            string queryString      = "SELECT * FROM dbo.Products WHERE ProductName = '" + DropDownUpdateProductName.SelectedItem.Text + "'";

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand command = new SqlCommand(queryString, connection);
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                try
                {
                    if (reader.Read())
                    {
                        //update product record in database
                        e.IsValid = true;
                        System.Diagnostics.Debug.WriteLine(e.Value.ToString() + " Exists");
                        //update product in database
                        using (var _db = new WingtipToys.Models.ProductContext())
                        {
                            var myItem = (from c in _db.Products where c.ProductName == DropDownUpdateProductName.SelectedItem.Text select c).FirstOrDefault();
                            if (myItem != null)
                            {
                                System.Diagnostics.Debug.WriteLine(myItem.Description);
                                //remove product from database
                                _db.Products.Remove(myItem);
                                _db.SaveChanges();

                                // Add product data to DB.
                                AddProducts products = new AddProducts();
                                var         product  = new WingtipToys.Models.Product();
                                //update name, description, and price, but keep same category id and image file path for now
                                bool addSuccess = products.AddProduct(DropDownUpdateProductName.SelectedItem.Text, UpdateProductDescription.Text,
                                                                      UpdateProductPrice.Text, DropDownUpdateCategory.SelectedValue, myItem.ImagePath);
                                if (addSuccess)
                                {
                                    // Reload the page.
                                    string pageUrl = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Count() - Request.Url.Query.Count());
                                    Response.Redirect(pageUrl + "?ProductAction=add");
                                }
                                else
                                {
                                    System.Diagnostics.Debug.WriteLine("Unable to add new product to database.");
                                }
                            }
                            else
                            {
                                System.Diagnostics.Debug.WriteLine("Unable to locate product.");
                            }
                        }
                    }
                    else
                    {
                        //Throw validation error because product does not exist and cannot be updated
                        e.IsValid = false;
                        System.Diagnostics.Debug.WriteLine(e.Value.ToString() + " Does not exist");
                    }
                }
                finally
                {
                    reader.Close();
                }
            }
        }
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    if (_db != null)
                    {
                        _db.Dispose();
                        _db = null;
                    }
                }

                // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
                // TODO: set large fields to null.

                disposedValue = true;
            }
        }
Beispiel #41
0
        public IQueryable <Product> GetProducts(
            [QueryString("id")] int?categoryId,
            [RouteData] string categoryName)
        {
            var _db = new WingtipToys.Models.ProductContext();

            bool isIntel = false;
            bool isAmd   = false;

            ShoppingCartActions actions = new ShoppingCartActions();
            List <CartItem>     items   = actions.GetCartItems();

            List <Product> products = new List <Product>();

            foreach (CartItem item in items)
            {
                products.Add(_db.Products.SingleOrDefault(Product => Product.ProductID == item.Product.ProductID));
            }

            //Filtere nach Mainboards
            List <Product> mainboards = new List <Product>();

            foreach (Product product in products)
            {
                if (product.CategoryID == 1)
                {
                    mainboards.Add(product);
                }
            }
            IQueryable <Product> query = _db.Products;

            query = query.Where(p => p.CategoryID == 2);
            if (mainboards.Any())
            {
                foreach (Product mainboard in mainboards)
                {
                    if (mainboard.isIntel)
                    {
                        isIntel = true;
                    }
                    if (mainboard.isAmd)
                    {
                        isAmd = true;
                    }
                }

                if (isIntel == false && isAmd == true)
                {
                    query = query.Where(p => p.isAmd == true);
                }
                else if (isIntel == true && isAmd == false)
                {
                    query = query.Where(p => p.isIntel == true);
                }
                else if (isIntel == false && isAmd == false)
                {
                    query = query.Where(p => p.isIntel == false);
                    query = query.Where(p => p.isAmd == false);
                } //Falls beide true, dann einfach alles zurueckgeben
            }


            //if (categoryId.HasValue && categoryId > 0)
            //{
            //  query = query.Where(p => p.CategoryID == categoryId);
            //}

            //if (!String.IsNullOrEmpty(categoryName))
            //{
            //  query = query.Where(p =>
            //                      String.Compare(p.Category.CategoryName,
            //                      categoryName) == 0);
            //}
            return(query);
        }