Example #1
0
    public IQueryable<Product> GetProducts(
                        [QueryString("id")] int? categoryId,
                        [RouteData] string categoryName)
    {
      var _db = new EzyCards.Models.ProductContext();
      IQueryable<Product> query = _db.Products;
		IQueryable<FaceBookPage> facePage = _db.FaceBookPages;

		string faceBookPageId = Session["PageId"] == null ? null : Session["PageId"].ToString();

		//if (!String.IsNullOrEmpty(faceBookPageId))
		{
			query = query.Where(p =>
							String.Compare(p.faceBookPage.FaceBookPageId,
							faceBookPageId) == 0);
		}

      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 && String.Compare(p.faceBookPage.FaceBookPageId,
							faceBookPageId) == 0);
      }
      return query;
    }
Example #2
0
        public IQueryable <Category> GetCategories()
        {
            var _db = new EzyCards.Models.ProductContext();
            IQueryable <Category> query = _db.Categories;

            return(query);
        }
Example #3
0
        // 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 <EzyCards.Models.FaceBookPage> GetFaceBookPages()
        {
            var _db = new EzyCards.Models.ProductContext();
            IQueryable <FaceBookPage> query = _db.FaceBookPages;

            return(query);
        }
Example #4
0
 public void UpdateShoppingCartDatabase(String cartId, ShoppingCartUpdates[] CartItemUpdates)
 {
     using (var db = new EzyCards.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);
         }
     }
 }
Example #5
0
        public IQueryable <Product> GetProducts(
            [QueryString("id")] int?categoryId,
            [RouteData] string categoryName)
        {
            var _db = new EzyCards.Models.ProductContext();
            IQueryable <Product>      query    = _db.Products;
            IQueryable <FaceBookPage> facePage = _db.FaceBookPages;

            string faceBookPageId = Session["PageId"] == null ? null : Session["PageId"].ToString();

            //if (!String.IsNullOrEmpty(faceBookPageId))
            {
                query = query.Where(p =>
                                    String.Compare(p.faceBookPage.FaceBookPageId,
                                                   faceBookPageId) == 0);
            }

            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 && String.Compare(p.faceBookPage.FaceBookPageId,
                                                                                        faceBookPageId) == 0);
            }
            return(query);
        }
Example #6
0
        public IQueryable GetProducts()
        {
            var        _db   = new EzyCards.Models.ProductContext();
            IQueryable query = _db.Products;

            return(query);
        }
Example #7
0
 public void Dispose()
 {
   if (_db != null)
   {
     _db.Dispose();
     _db = null;
   }
 }
Example #8
0
 public void UpdateItem(string updateCartID, int updateProductID, int quantity)
 {
     using (var _db = new EzyCards.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);
         }
     }
 }
Example #9
0
 public void RemoveItem(string removeCartID, int removeProductID)
 {
     using (var _db = new EzyCards.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);
         }
     }
 }
Example #10
0
 public IQueryable<Product> GetProduct(
                     [QueryString("ProductID")] int? productId,
                     [RouteData] string productName)
 {
   var _db = new EzyCards.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;
 }
Example #11
0
        public IQueryable <Product> GetProduct(
            [QueryString("ProductID")] int?productId,
            [RouteData] string productName)
        {
            var _db = new EzyCards.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);
        }
Example #12
0
        protected void RemoveProductButton_Click(object sender, EventArgs e)
        {
            string faceBookPageId = Session["PageId"] == null ? null : Session["PageId"].ToString();

            using (var _db = new EzyCards.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.";
                }
            }
        }
Example #13
0
    public bool AddProduct(string ProductName, string ProductDesc, string ProductPrice, string ProductCategory,string ProductFaceBookPage, 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 (var _db = new ProductContext())
	  {
		  var myItem = (from c in _db.FaceBookPages where c.FaceBookPageId == ProductFaceBookPage select c).FirstOrDefault() ;
		  if (myItem != null)
			  myProduct.faceBookPage = myItem;
	  }

      using (ProductContext _db = new ProductContext())
      {
        // Add product to DB.
        _db.Products.Add(myProduct);
        _db.SaveChanges();
      }
      // Success.
      return true;
    }
Example #14
0
 public void UpdateShoppingCartDatabase(String cartId, ShoppingCartUpdates[] CartItemUpdates)
 {
   using (var db = new EzyCards.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);
     }
   }
 }
Example #15
0
 public void RemoveItem(string removeCartID, int removeProductID)
 {
   using (var _db = new EzyCards.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);
     }
   }
 }
Example #16
0
 public void UpdateItem(string updateCartID, int updateProductID, int quantity)
 {
   using (var _db = new EzyCards.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);
     }
   }
 }
Example #17
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Session["payment_method"] == "paypal")
                {
                    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 (EzyCards.Logic.ShoppingCartActions usersShoppingCart = new EzyCards.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.
                                _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);
                    }
                }
                else if (Session["payment_method"] == "ezycard")
                {
                    EzyCardFunctions ezyCardCaller = new EzyCardFunctions();

                    string retMsg = "";
                    string token = "";
                    string PayerID = "";
                    NVPEzyCodec decoder = new NVPEzyCodec();
                    token = Session["token"].ToString();

                    bool ret = ezyCardCaller.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());
                        myOrder.HasBeenShipped = false;
                        // 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 (EzyCards.Logic.ShoppingCartActions usersShoppingCart = new EzyCards.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.
                                _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);
                    }
                }
            }
        }
Example #18
0
    protected void RemoveProductButton_Click(object sender, EventArgs e)
	{
		string faceBookPageId = Session["PageId"] == null ? null : Session["PageId"].ToString(); 
      using (var _db = new EzyCards.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.";
        }
      }
    }
Example #19
0
 public IQueryable GetProducts()
 {
   var _db = new EzyCards.Models.ProductContext();
   IQueryable query = _db.Products;
   return query;
 }
Example #20
0
		// 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<EzyCards.Models.FaceBookPage> GetFaceBookPages()
		{
			var _db = new EzyCards.Models.ProductContext();
			IQueryable<FaceBookPage> query = _db.FaceBookPages;
			return query;
		}
Example #21
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.");
              }
              if (Session["payment_method"] == "paypal")
              {
                  NVPAPICaller payPalCaller = new NVPAPICaller();

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

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

                  bool ret = payPalCaller.DoCheckoutPayment(finalPaymentAmount, token, PayerID, ref decoder, ref retMsg);
                  if (ret)
                  {
                      // Retrieve PayPal confirmation value.
                      string PaymentConfirmation = decoder["PAYMENTINFO_0_TRANSACTIONID"].ToString();
                      TransactionId.Text = PaymentConfirmation;


                      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 = PaymentConfirmation;
                          // Save to DB.
                          _db.SaveChanges();
                      }

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

                      // Clear order id.
                      Session["currentOrderId"] = string.Empty;
                  }
                  else
                  {
                      Response.Redirect("CheckoutError.aspx?" + retMsg);
                  }
              }

              else if (Session["payment_method"] == "ezycard")
              {
                  EzyCardFunctions ezyCardCaller = new EzyCardFunctions();

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

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

                  bool ret = ezyCardCaller.DoCheckoutPayment(finalPaymentAmount, token, PayerID, ref decoder, ref retMsg);
                  if (ret)
                  {
                      // Retrieve PayPal confirmation value.
                      string PaymentConfirmation = decoder["PAYMENTINFO_0_TRANSACTIONID"].ToString();
                      TransactionId.Text = PaymentConfirmation;


                      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 = PaymentConfirmation;
                          // Save to DB.
                          _db.SaveChanges();
                      }

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

                      // Clear order id.
                      Session["currentOrderId"] = string.Empty;
                  }
                  else
                  {
                      Response.Redirect("CheckoutError.aspx?" + retMsg);
                  }
              }

          }
      }
Example #22
0
		public IQueryable<Category> GetCategories()
		{
			var _db = new EzyCards.Models.ProductContext();
			IQueryable<Category> query = _db.Categories;
			return query;
		}