protected void cartLabelQuantity()
        {
            if (Session["LoggedInId"] != null && Session["cartID"] != null)
            {
                int CART_QUANTITY = 0;

                int cartId = Int32.Parse(Session["cartID"].ToString());
                int userId = Int32.Parse(Session["LoggedInId"].ToString());

                using (StoreContent context = new StoreContent())
                {
                    var order = (from c in context.Orders
                                 where c.Id == cartId && c.CustomerID == userId
                                 select c).FirstOrDefault();

                    var quantity = from c in context.OrderItem
                                   where c.OrderID == order.Id
                                   select c;

                    if (order != null && quantity != null)
                    {
                        foreach (OrderItem item in quantity)
                        {
                            CART_QUANTITY += item.Quantity;

                            lblShoppingCart.Text = "Shopping Cart" + " (" + CART_QUANTITY.ToString() + ")";

                        }
                    }

                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            search = Request.QueryString["query"];
            using (StoreContent context = new StoreContent())
            {
                var products = (from p in context.Products
                                where p.ProductName.ToLower().Contains(search.ToLower()) || p.ProductDescription.ToLower().Contains(search.ToLower())
                                select p).ToList();
                if(products!= null)
                {
                    foreach(Products p in products) {
                        TableRow row = new TableRow();

                        TableCell cell = new TableCell();
                        cell.Text = "<img src=\"" + p.image + "\" />";
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        cell.Text = p.ProductName;
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        cell.Text = p.ProductDescription;
                        row.Cells.Add(cell);
                        tblSearch.Rows.Add(row);
                        results++;
                    }
                }
            }
            lblSearch.Text+=results+" result(s) for '"+search+"'";
        }
        protected void btnSignIn_Click(object sender, EventArgs e)
        {
            using (StoreContent context = new StoreContent())
            {
                var pwd = FinalProject.SecuredPasswordHash.GenerateHash(txtPassword.Text);
                var user = (from c in context.Customer
                            where c.UserName == txtUsername.Text && c.Password == pwd
                            select c).FirstOrDefault();

                if (user != null)
                {
                    Session["LoggedInId"] = user.Id.ToString();
                    Session["FirstName"] = user.FirstName;
                    Session["LastName"] = user.LastName;

                    lblInvalidCredentials.Visible = false;
                    updateUserName();

                    instantiateCart(Int32.Parse(Session["LoggedInId"].ToString()));

                    cartLabelQuantity();

                }
                else
                {
                    lblInvalidCredentials.Visible = true;
                    signInContent.Style.Add("visibility", "visible");

                }
            }
        }
        protected void completeOrder(int userId, int transactionId)
        {
            using (StoreContent context = new StoreContent())
            {
                var order = (from c in context.Orders
                             where c.Id == transactionId && c.CustomerID == userId
                             select c).FirstOrDefault();

                var user = (from c in context.Customer
                            where c.Id == userId
                            select c).FirstOrDefault();

                var shipAdd = (from c in context.Address
                               where c.UserName == user.UserName && c.typeAdd == "Shipping"
                               select c).FirstOrDefault();

                order.OrderStatus = "Complete";
                order.OrderDate = DateTime.Now;

                Orders newOrder = context.Orders.Create();

                newOrder.CustomerID = userId;
                newOrder.SubTotal = 0;
                newOrder.OrderDate = DateTime.Now;
                newOrder.ShippingAddress = shipAdd.Address;
                newOrder.OrderStatus = "Active";

                context.Orders.Add(newOrder);

                context.SaveChanges();

                Session["cartID"] = newOrder.Id.ToString();

            }
        }
        protected void btnSignIn_Click(object sender, EventArgs e)
        {
            using (StoreContent context = new StoreContent())
            {
                var user = (from c in context.Customer
                            where c.UserName == txtUsername.Text && c.Password == txtPassword.Text
                            select c).FirstOrDefault();

                if (user != null)
                {
                    Session["LoggedInId"] = user.Id.ToString();
                    Session["FirstName"] = user.FirstName;
                    Session["LastName"] = user.LastName;

                    lblInvalidCredentials.Visible = false;
                    updateUserName();

                }
                else
                {
                    lblInvalidCredentials.Visible = true;
                    signInContent.Style.Add("visibility", "visible");

                }
            }
        }
        protected void populateAddresses()
        {
            if (Session["LoggedInId"] != null)
            {
                using (StoreContent context = new StoreContent())
                {
                    int userId = Int32.Parse(Session["LoggedInId"].ToString());

                    var user = (from c in context.Customer
                                where c.Id == userId
                                select c).FirstOrDefault();

                    var shipAdd = (from c in context.Address
                                   where c.UserName == user.UserName && c.typeAdd == "Shipping"
                                   select c).FirstOrDefault();

                    var billAdd = (from c in context.Address
                                   where c.UserName == user.UserName && c.typeAdd == "Billing"
                                   select c).FirstOrDefault();

                    if (user != null)
                    {
                        lblShippingAddress.Text = shipAdd.Address;
                        lblShippingCity.Text = shipAdd.City;
                        lblShippingState.Text = shipAdd.State;
                        lblShippingZip.Text = shipAdd.Zip.ToString();

                        lblBillingAddress.Text = billAdd.Address;
                        lblBillingCity.Text = billAdd.City;
                        lblBillingState.Text = billAdd.State;
                        lblBillingZip.Text = billAdd.Zip.ToString();
                    }
                }
            }
        }
        protected void populateData()
        {
            try
            {
                String productId = Request.QueryString["Id"];

                using (StoreContent content = new StoreContent())
                {
                    var currentProduct = (from c in content.Products
                                          where c.Id.ToString() == productId
                                          select c).FirstOrDefault();

                    imgProduct.ImageUrl = currentProduct.image;
                    lblProductName.Text = currentProduct.ProductName;
                    lblProductDescription.Text = currentProduct.ProductDescription;
                    lblPrice.Text = "$" + currentProduct.UnitPrice.ToString();

                    if (currentProduct.Stock > 10)
                    {
                        for (int i = 1; i <= 10; i++)
                        {
                            ListItem itemQuantity = new ListItem();
                            itemQuantity.Text = i.ToString();
                            itemQuantity.Value = i.ToString();

                            ddlQuantity.Items.Add(itemQuantity);
                        }

                    }
                    else
                    {
                        for (int i = 1; i <= currentProduct.Stock; i++)
                        {
                            ListItem itemQuantity = new ListItem();
                            itemQuantity.Text = i.ToString();
                            itemQuantity.Value = i.ToString();

                            ddlQuantity.Items.Add(itemQuantity);
                        }
                    }

                    if (currentProduct.Stock > 0)
                    {

                        btnAddToCart.Text = "Add To Cart";
                        btnAddToCart.Command += new CommandEventHandler(AddToCart);
                        btnAddToCart.CommandArgument = currentProduct.Id.ToString();
                    } else
                    {
                        btnAddToCart.Text = "Out of Stock!";
                    }

                }

            } catch
            {

            }
        }
        protected void populateOrderConfirmation()
        {
            if (Session["cartID"] != null)
            {
                int cartId = Int32.Parse(Session["cartID"].ToString());
                Decimal totalPrice = 0;

                using (StoreContent context = new StoreContent())
                {
                    var cart = (from c in context.Orders
                                where c.Id == cartId
                                select c).FirstOrDefault();

                    if (cart != null)
                    {

                        var orderItems = from c in context.OrderItem
                                          where c.OrderID == cartId
                                          select c;

                        AppTransId = cart.Id.ToString();

                        foreach (OrderItem item in orderItems)
                        {
                            var product = (from c in context.Products
                                           where c.Id == item.ProductID
                                           select c).First();

                            TableRow row = new TableRow();
                            TableCell cell;

                            cell = new TableCell();
                            cell.Text = product.ProductName;
                            row.Cells.Add(cell);

                            cell = new TableCell();
                            cell.Text = "$" + (product.UnitPrice * item.Quantity).ToString("N2");
                            row.Cells.Add(cell);

                            cell = new TableCell();
                            cell.Text = item.Quantity.ToString();
                            row.Cells.Add(cell);

                            tblOrderConfirmation.Rows.Add(row);

                            totalPrice += Decimal.Parse((product.UnitPrice * item.Quantity).ToString());
                        }
                    }
                }

                AppTransAmount = totalPrice.ToString();
                lblTotal.Text = "Total: $" + totalPrice.ToString("N2");

                if (totalPrice <= 0)
                {
                    Response.Redirect("index.aspx");
                }
            }
        }
        protected void populateOrders()
        {
            int userId = Int32.Parse(Session["LoggedInId"].ToString());

            using (StoreContent context = new StoreContent())
            {
                var customerOrders = from c in context.Orders
                                     where c.CustomerID == userId && c.OrderStatus == "Complete"
                                     orderby c.OrderDate descending
                                     select c;

                if (customerOrders != null)
                {
                    foreach (Orders order in customerOrders)
                    {

                        TableRow row = new TableRow();
                        TableCell cell;
                        HyperLink link;

                        cell = new TableCell();
                        link = new HyperLink();
                        link.Text = order.OrderDate.ToString("MM/dd/yyyy");
                        link.NavigateUrl = "orderdetail.aspx?Id=" + order.Id;
                        cell.Controls.Add(link);
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        cell.Text = "$" + order.SubTotal.ToString("N2");
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        cell.Text = order.OrderStatus;
                        row.Cells.Add(cell);

                        tblOrders.Rows.Add(row);

                        for (int i = 0; i < 100; i++)
                        {
                            System.Console.WriteLine("WE MADE IT HERE");
                            System.Console.Write("WE MADE IT HERE");

                        }

                    }
                } else
                {
                    TableRow row = new TableRow();
                    TableCell cell;

                    cell = new TableCell();
                    cell.Text = "You have no order history. Why not buy something now?";

                    tblOrders.Rows.Add(row);
                }
            }
        }
示例#10
0
        protected void populateData()
        {
            using (StoreContent content = new StoreContent())
            {

                var categoryId = (from c in content.Category
                                  where c.Id == 2 //2 is the category ID for hiking
                                  select c.Id).FirstOrDefault();

                var products = from c in content.Products
                               where c.CategoryID == categoryId
                               select c;

                foreach (Products product in products)
                {

                    String productId = product.Id.ToString();

                    TableRow row = new TableRow();
                    TableCell cell;

                    cell = new TableCell();
                    Image img = new Image();
                    img.ImageUrl = product.image;
                    cell.Controls.Add(img);
                    row.Cells.Add(cell);

                    cell = new TableCell();
                    HyperLink link = new HyperLink();
                    link.Text = product.ProductName;
                    link.NavigateUrl = "/product.aspx?Id=" + productId;
                    cell.Controls.Add(link);
                    row.Cells.Add(cell);

                    cell = new TableCell();
                    cell.Text = "$" + product.UnitPrice.ToString();
                    row.Cells.Add(cell);

                    cell = new TableCell();
                    Button addToCartBtn = new Button();
                    addToCartBtn.Text = "Add To Cart";
                    addToCartBtn.ID = product.Id.ToString(); //Will use this when adding the onClick event handler so that it can add this product ID to the user's cart
                    addToCartBtn.CssClass = "addToCartButton";
                    cell.Controls.Add(addToCartBtn);
                    row.Cells.Add(cell);

                    tblProducts.Rows.Add(row);

                }

            }
        }
示例#11
0
        protected void populateData()
        {
            try
            {
                String productId = Request.QueryString["Id"];

                using (StoreContent content = new StoreContent())
                {
                    var currentProduct = (from c in content.Products
                                          where c.Id.ToString() == productId
                                          select c).FirstOrDefault();

                    //ADD IMAGE HERE imgProductImage
                    imgProduct.ImageUrl = currentProduct.image;
                    lblProductName.Text = currentProduct.ProductName;
                    lblProductDescription.Text = currentProduct.ProductDescription;
                    lblPrice.Text = "$" + currentProduct.UnitPrice.ToString();

                    if (currentProduct.Stock > 10)
                    {
                        for (int i = 1; i <= 10; i++)
                        {
                            ListItem itemQuantity = new ListItem();
                            itemQuantity.Text = i.ToString();
                            itemQuantity.Value = i.ToString();

                            ddlQuantity.Items.Add(itemQuantity);
                        }

                    }
                    else
                    {
                        for (int i = 1; i <= currentProduct.Stock; i++)
                        {
                            ListItem itemQuantity = new ListItem();
                            itemQuantity.Text = i.ToString();
                            itemQuantity.Value = i.ToString();

                            ddlQuantity.Items.Add(itemQuantity);
                        }
                    }

                }

            } catch
            {

            }
        }
        protected void populateLinks()
        {
            using (StoreContent context = new StoreContent())
            {
                int userId = Int32.Parse(Session["LoggedInId"].ToString());

                var userFirstName = (from c in context.Customer
                                     where c.Id == userId
                                     select c.FirstName).FirstOrDefault().ToString();

                if (userFirstName != null)
                {
                    lblPageName.Text = "Welcome, " + userFirstName;
                }
            }
        }
        public void ClearData(StoreContent content)
        {
            List<string> tablenames = content.Database.SqlQuery<string>("SELECT Table_Name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_NAME NOT LIKE '%Migration%'").ToList();
            for (int i = 0; tablenames.Count > 0; i++)
            {
                try
                {
                    content.Database.ExecuteSqlCommand(string.Format("DELETE FROM {0}", tablenames.ElementAt(i % tablenames.Count)));
                    tablenames.RemoveAt(i % tablenames.Count);
                    i = 0;
                }
                catch
                {

                }
                content.SaveChanges();
            }
        }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {

                using (StoreContent content = new StoreContent())
                {

                    var checkUsername = (from c in content.Customer
                                     where c.UserName == txtUsername.Text
                                     select c).FirstOrDefault();

                    if (checkUsername == null)
                    {
                        Customer newCustomer = content.Customer.Create();
                        newCustomer.FirstName = txtFirstName.Text;
                        newCustomer.LastName = txtLastName.Text;
                        newCustomer.BillingAddress = txtBillingAddress.Text;
                        newCustomer.ShippingAddress = txtShippingAddress.Text;
                        newCustomer.City = txtCity.Text;
                        newCustomer.Zip = Int32.Parse(txtZip.Text);
                        newCustomer.State = ddlState.SelectedItem.ToString();
                        newCustomer.email = txtEmail.Text;
                        newCustomer.UserName = txtUsername.Text;
                        newCustomer.Password = txtPass1.Text;

                        if (chkNewsletter.Checked)
                        {
                            newCustomer.NewsLetter = true;
                        }
                        else
                        {
                            newCustomer.NewsLetter = false;
                        }
                    } else
                    {
                        lblPageName.Text = "Username is already taken! Please choose another.";
                        lblPageName.ForeColor = System.Drawing.Color.Red;
                    }

                }
            }
        }
        protected void updateUserName()
        {
            if (Session["LoggedInId"] != null)
            {
                using (StoreContent content = new StoreContent())
                {

                    var userId = Session["LoggedInId"].ToString();

                    var userName = (from c in content.Customer
                                    where c.Id.ToString() == userId
                                    select c.FirstName).FirstOrDefault();

                    lblSignInUsername.Text = "Hi, " + (String)userName + "! &#x25BC;";
                    userFirstName = (String)userName;
                }

                pnlSignIn.Visible = false;
                pnlSignedInOptions.Visible = true;
                lblFirstName.Text = userFirstName;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            using (StoreContent content = new StoreContent())
            {
                ClearData(content);

                Category c = new Category();
                c.Id = 00;
                c.Description = "Climbing";
                content.Category.Add(c);

                c = new Category();
                c.Id = 01;
                c.Description = "Hiking";
                content.Category.Add(c);

                c = new Category();
                c.Id = 11;
                c.Description = "Apparel";
                content.Category.Add(c);

                Products p = new Products();
                p.ProductName = "Climbing Shoes";
                p.ProductDescription = "Shoes that won't weigh you down.";
                p.UnitPrice = 119.99;
                p.CategoryID = 00;
                p.Featured = false;
                p.image = "/images/climbing-shoes.jpg";
                p.Stock = 49;
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Climbing Harness";
                p.ProductDescription = "Hang on";
                p.UnitPrice = 79.99;
                p.CategoryID = 00;
                p.Featured = false;
                p.Stock = 28;
                p.image = "/images/climbing-harness.jpg";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Climbing Carabiner";
                p.ProductDescription = "Attach yourself to what's important";
                p.UnitPrice = 19.99;
                p.CategoryID = 00;
                p.Featured = false;
                p.Stock = 150;
                p.image = "/images/climbing-carabiner.jpg";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Climbing Belay Device";
                p.ProductDescription = "Belay with ease.";
                p.UnitPrice = 99.99;
                p.CategoryID = 00;
                p.Featured = false;
                p.Stock = 100;
                p.image = "/images/climbing-belaydevice.jpg";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Climbing Quickdraw";
                p.ProductDescription = "Precisioned attachment.";
                p.UnitPrice = 14.99;
                p.CategoryID = 00;
                p.Featured = false;
                p.Stock = 25;
                p.image = "/images/climbing-quickdraw";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Climbing Rope";
                p.ProductDescription = "Strong durable rope for scaling cliffs.";
                p.UnitPrice = 199.99;
                p.CategoryID = 00;
                p.Featured = false;
                p.Stock = 200;
                p.image = "/images/climbing-rope.jpg";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Climbing Cams";
                p.ProductDescription = "For when the only thing to hold on to is between a rock and another rock.";
                p.UnitPrice = 300;
                p.CategoryID = 00;
                p.Featured = false;
                p.Stock = 300;
                p.image = "/images/climbing-cams.jpg";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Hiking boots";
                p.ProductDescription = "Never lose traction";
                p.UnitPrice = 110.00;
                p.CategoryID = 01;
                p.Featured = false;
                p.Stock = 115;
                p.image = "/images/hiking-boots.jpg";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Hiking Pack";
                p.ProductDescription = "Mystery bags of all bags";
                p.UnitPrice = 200.00;
                p.CategoryID = 01;
                p.Featured = false;
                p.Stock = 35;
                p.image = "/images/hiking-pack.jpg";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Hiking Sleeping Bag";
                p.ProductDescription = "Made of that material that will hug you back when you sleep.";
                p.UnitPrice = 140.00;
                p.CategoryID = 01;
                p.Featured = false;
                p.Stock = 60;
                p.image = "/images/hiking-sleepingbag.jpg";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Apparel-Jacket";
                p.ProductDescription = "Look ready to take on the climb.";
                p.UnitPrice = 170.00;
                p.CategoryID = 11;
                p.Featured = false;
                p.Stock = 180;
                p.image = "/images/apparel-jacket.jpg";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Apparel-Pants";
                p.ProductDescription = "The swiss army knife of pants.";
                p.UnitPrice = 80.00;
                p.CategoryID = 11;
                p.Featured = false;
                p.Stock = 360;
                p.image = "/images/apparel-pants.jpg";
                content.Products.Add(p);

                p = new Products();
                p.ProductName = "Apparel-Shorts";
                p.ProductDescription = "Like the pants but half the length.";
                p.UnitPrice = 60.00;
                p.CategoryID = 11;
                p.Featured = false;
                p.Stock = 360;
                p.image = "/images/apparel-shorts.jpg";
                //this image can be changed, i just couldn't find a picture of actual shorts
                content.Products.Add(p);

                content.SaveChanges();
            }
        }
        private void AddToCart(object sender, CommandEventArgs e)
        {
            if (Session["LoggedInId"] == null)
            {
                lblPageName.Text = "Please sign in or register to add items!";
                lblPageName.ForeColor = System.Drawing.Color.Red;
                return;
            }

            int addId = Convert.ToInt32(e.CommandArgument);
            int custId, cartId;
            bool hasCart = false;
            if (Session["LoggedInId"] == null)
                custId = 1;
            else
                custId = Int32.Parse(Session["LoggedInId"].ToString());

                if (Session["cartID"] == null)
            {
                using (StoreContent context = new StoreContent())
                {
                    var check = (from c in context.Orders
                                 where c.CustomerID == custId && c.OrderStatus == "Active"
                                 orderby c.Id descending
                                 select c).FirstOrDefault();
                    if(check!= null)
                    {
                        Session["cartID"] = check.Id;
                        hasCart = true;
                    }
                }
                if (!hasCart) {
                    var cart = new Orders();
                    cart.CustomerID = custId;
                    cart.OrderStatus = "Active";
                    cart.OrderDate = DateTime.Now;
                    cart.SubTotal = 0;
                    using (StoreContent context = new StoreContent())
                    {
                        context.Orders.Add(cart);
                        context.SaveChanges();
                        Session["cartID"] = cart.Id;
                    }
                }
            }
            cartId = Int32.Parse(Session["cartID"].ToString());
            using (StoreContent context = new StoreContent())
            {
                var cart = (from c in context.Orders
                            where c.Id == cartId
                            select c).FirstOrDefault();
                var item = (from p in context.Products
                            where p.Id == addId
                            select p).FirstOrDefault();
                var checkItem = (from c in context.OrderItem
                                 where c.ProductID == item.Id && c.OrderID == cart.Id
                                 select c).FirstOrDefault();
                if (checkItem != null)
                {
                    checkItem.Quantity++;
                }
                else
                {
                    var orditem = new OrderItem();
                    orditem.CustomerID = custId;
                    orditem.OrderID = cartId;
                    orditem.ProductID = item.Id;
                    orditem.Quantity = 1; //hard coded, can add function to add multiple items
                    context.OrderItem.Add(orditem);
                }
                if (cart != null)
                    cart.SubTotal += Decimal.Parse(item.UnitPrice.ToString());
                item.Stock--;   //remove from stock
                context.SaveChanges();
            }
        }
        protected void checkBoxChanged(object sender, EventArgs e)
        {
            CheckBox chkBox = (CheckBox) sender;

            if (chkBox.Checked)
            {
                lblPageName.Text = "Filtered by: " + chkBox.Text;

                using (StoreContent context = new StoreContent())
                {

                    string subcategory = chkBox.Text;
                    string filterQuery = subcategory.Substring(0, subcategory.Length - 2);

                    var categoryId = (from c in context.Category
                                      where c.Id == 1 //1 is the category ID for climbing
                                      select c.Id).FirstOrDefault();

                    var products = from c in context.Products
                                   where c.CategoryID == categoryId
                                   select c;

                    foreach (Products product in products)
                    {
                        TableRow row = tblProducts.Rows[0];
                        tblProducts.Rows.Remove(row);
                    }

                    foreach (Products product in products)
                    {
                        if (product.ProductName.Contains(filterQuery))
                        {
                            String productId = product.Id.ToString();

                            TableRow row = new TableRow();
                            TableCell cell;

                            cell = new TableCell();
                            Image img = new Image();
                            img.ImageUrl = product.image;
                            cell.Controls.Add(img);
                            row.Cells.Add(cell);

                            cell = new TableCell();
                            HyperLink link = new HyperLink();
                            link.Text = product.ProductName;
                            link.NavigateUrl = "/product.aspx?Id=" + productId;
                            cell.Controls.Add(link);
                            row.Cells.Add(cell);

                            cell = new TableCell();
                            cell.Text = "$" + product.UnitPrice.ToString();
                            row.Cells.Add(cell);

                            cell = new TableCell();
                            Button addToCartBtn = new Button();
                            addToCartBtn.Text = "Add To Cart";
                            addToCartBtn.ID = product.Id.ToString(); //Will use this when adding the onClick event handler so that it can add this product ID to the user's cart
                            addToCartBtn.CssClass = "addToCartButton";
                            cell.Controls.Add(addToCartBtn);
                            row.Cells.Add(cell);

                            tblProducts.Rows.Add(row);

                        }

                    }
                }

            } else
            {
                lblPageName.Text = "CLIMBING";

            }

            uncheckBoxes(chkBox);
        }
        protected void priceCheckBoxChanged(object sender, EventArgs e)
        {
            CheckBox chkBox = (CheckBox)sender;

            if (chkBox.Checked)
            {
                lblPageName.Text = "Filtered by: " + chkBox.Text;
                int caseSwitch = caseSwitchMax(chkBox.Text);

                using (StoreContent context = new StoreContent())
                {
                    var categoryId = (from c in context.Category
                                      where c.Id == 1 //1 is the category ID for climbing
                                      select c.Id).FirstOrDefault();

                    var products = from c in context.Products
                                   where c.CategoryID == categoryId
                                   select c;

                    foreach (Products product in products) //Only used this as the iterator because this way it removes the exact amount of rows necessary
                    {
                        TableRow row = tblProducts.Rows[0];
                        tblProducts.Rows.Remove(row);
                    }

                    switch(caseSwitch)
                    {
                        case 1:
                            foreach(Products product in products)
                            {
                                if (product.UnitPrice <= 50)
                                {
                                    String productId = product.Id.ToString();

                                    TableRow row = new TableRow();
                                    TableCell cell;

                                    cell = new TableCell();
                                    Image img = new Image();
                                    img.ImageUrl = product.image;
                                    cell.Controls.Add(img);
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    HyperLink link = new HyperLink();
                                    link.Text = product.ProductName;
                                    link.NavigateUrl = "/product.aspx?Id=" + productId;
                                    cell.Controls.Add(link);
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    cell.Text = "$" + product.UnitPrice.ToString();
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    Button addToCartBtn = new Button();
                                    addToCartBtn.Text = "Add To Cart";
                                    addToCartBtn.ID = product.Id.ToString(); //Will use this when adding the onClick event handler so that it can add this product ID to the user's cart
                                    addToCartBtn.CssClass = "addToCartButton";
                                    cell.Controls.Add(addToCartBtn);
                                    row.Cells.Add(cell);

                                    tblProducts.Rows.Add(row);
                                }

                            }
                            break;

                        case 2:
                            foreach (Products product in products)
                            {
                                if (product.UnitPrice > 50 && product.UnitPrice <= 100)
                                {
                                    String productId = product.Id.ToString();

                                    TableRow row = new TableRow();
                                    TableCell cell;

                                    cell = new TableCell();
                                    Image img = new Image();
                                    img.ImageUrl = product.image;
                                    cell.Controls.Add(img);
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    HyperLink link = new HyperLink();
                                    link.Text = product.ProductName;
                                    link.NavigateUrl = "/product.aspx?Id=" + productId;
                                    cell.Controls.Add(link);
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    cell.Text = "$" + product.UnitPrice.ToString();
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    Button addToCartBtn = new Button();
                                    addToCartBtn.Text = "Add To Cart";
                                    addToCartBtn.ID = product.Id.ToString(); //Will use this when adding the onClick event handler so that it can add this product ID to the user's cart
                                    addToCartBtn.CssClass = "addToCartButton";
                                    cell.Controls.Add(addToCartBtn);
                                    row.Cells.Add(cell);

                                    tblProducts.Rows.Add(row);
                                }

                            }
                            break;

                        case 3:
                            foreach (Products product in products)
                            {
                                if (product.UnitPrice > 100 && product.UnitPrice <= 200)
                                {
                                    String productId = product.Id.ToString();

                                    TableRow row = new TableRow();
                                    TableCell cell;

                                    cell = new TableCell();
                                    Image img = new Image();
                                    img.ImageUrl = product.image;
                                    cell.Controls.Add(img);
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    HyperLink link = new HyperLink();
                                    link.Text = product.ProductName;
                                    link.NavigateUrl = "/product.aspx?Id=" + productId;
                                    cell.Controls.Add(link);
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    cell.Text = "$" + product.UnitPrice.ToString();
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    Button addToCartBtn = new Button();
                                    addToCartBtn.Text = "Add To Cart";
                                    addToCartBtn.ID = product.Id.ToString(); //Will use this when adding the onClick event handler so that it can add this product ID to the user's cart
                                    addToCartBtn.CssClass = "addToCartButton";
                                    cell.Controls.Add(addToCartBtn);
                                    row.Cells.Add(cell);

                                    tblProducts.Rows.Add(row);
                                }

                            }
                            break;

                        case 4:
                            foreach (Products product in products)
                            {
                                if (product.UnitPrice > 200)
                                {
                                    String productId = product.Id.ToString();

                                    TableRow row = new TableRow();
                                    TableCell cell;

                                    cell = new TableCell();
                                    Image img = new Image();
                                    img.ImageUrl = product.image;
                                    cell.Controls.Add(img);
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    HyperLink link = new HyperLink();
                                    link.Text = product.ProductName;
                                    link.NavigateUrl = "/product.aspx?Id=" + productId;
                                    cell.Controls.Add(link);
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    cell.Text = "$" + product.UnitPrice.ToString();
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    Button addToCartBtn = new Button();
                                    addToCartBtn.Text = "Add To Cart";
                                    addToCartBtn.ID = product.Id.ToString(); //Will use this when adding the onClick event handler so that it can add this product ID to the user's cart
                                    addToCartBtn.CssClass = "addToCartButton";
                                    cell.Controls.Add(addToCartBtn);
                                    row.Cells.Add(cell);

                                    tblProducts.Rows.Add(row);
                                }

                            }
                            break;

                    }
                }

            } else
            {
                lblPageName.Text = "CLIMBING";
            }

            uncheckBoxes(chkBox);
        }
        protected void instantiateCart(int userId)
        {
            using (StoreContent context = new StoreContent())
            {
                var order = (from c in context.Orders
                             where c.CustomerID == userId && c.OrderStatus == "Active"
                             select c).FirstOrDefault();

                if (order != null)
                {
                    Session["cartID"] = order.Id.ToString();
                }
                else
                {

                    var user = (from c in context.Customer
                                where c.Id == userId
                                select c).First();

                    var shipAdd = (from c in context.Address
                                   where c.UserName == txtUsername.Text && c.typeAdd == "Shipping"
                                   select c).FirstOrDefault();

                    Orders newOrder = context.Orders.Create();

                    newOrder.CustomerID = userId;
                    newOrder.SubTotal = 0;
                    newOrder.OrderDate = DateTime.Now;
                    newOrder.ShippingAddress = shipAdd.Address;
                    newOrder.OrderStatus = "Active";

                    context.Orders.Add(newOrder);
                    context.SaveChanges();

                }
            }
            Response.Redirect(Request.RawUrl);
        }
示例#21
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["LoggedInId"] == null)
            {
                lblCart.Text = "Please sign in or register to view your cart!";
                lblCart.ForeColor = System.Drawing.Color.Red;

                lblCartQuantity.Text = null;

                return;
            }

            //Test cart     Session["cartID"] = 2;
            if (Session["cartID"] == null)
            {
                lblCartQuantity.Text = "(0 items)";
                lblSubtotal.Text += "0.00";
                btnCheckout.Enabled = false;
            }
            else
            {
                btnCheckout.Enabled = true;
                int cartId = Int32.Parse(Session["cartID"].ToString());
                int cartQuantity = 0;

                using (StoreContent context = new StoreContent())
                {
                    var cart = (from c in context.Orders
                                where c.Id == cartId
                                select c).First();
                    if(cart!= null)
                    {
                        int itemQty = 0;
                        bool firstFound = true;
                        var orderitems = (from o in context.OrderItem
                                         where o.OrderID == cartId
                                         select o);
                        foreach(OrderItem item in orderitems)
                        {
                            var product = (from p in context.Products
                                           where p.Id == item.ProductID
                                           select p).First();
                            int products = (from p in context.OrderItem
                                            where p.OrderID == cartId && p.ProductID == product.Id
                                            select p).Count();
                            if (products == 1)
                            {
                                cartQuantity += item.Quantity;
                                TableRow row = new TableRow();
                                TableCell cell = new TableCell();
                                cell.Text = "<img src=\"" + product.image + "\" />";
                                row.Cells.Add(cell);

                                cell = new TableCell();
                                HyperLink link = new HyperLink();
                                link.Text = product.ProductName;
                                link.NavigateUrl = "product.aspx?Id=" + product.Id;
                                cell.Controls.Add(link);
                                row.Cells.Add(cell);

                                //If item quantity is > 1, show total price and price of each unit
                                cell = new TableCell();
                                if (item.Quantity <= 1)
                                {
                                    cell.Text = "$" + product.UnitPrice.ToString("N2");
                                } else
                                {
                                    cell.Text = "$" + (product.UnitPrice * item.Quantity).ToString("N2") + " ($" + product.UnitPrice.ToString("N2") + " ea)";
                                }

                                row.Cells.Add(cell);

                                cell = new TableCell();
                                cell.Text = item.Quantity.ToString();
                                row.Cells.Add(cell);

                                cell = new TableCell();
                                Button removeFromCart = new Button();
                                removeFromCart.Text = "Remove From Cart";
                                removeFromCart.ID = product.Id.ToString(); //Will use this when adding the onClick event handler so that it can add this product ID to the user's cart
                                removeFromCart.CssClass = "actionButton";
                                removeFromCart.Command += new CommandEventHandler(RemoveFromCart);
                                removeFromCart.CommandArgument = product.Id.ToString();
                                cell.Controls.Add(removeFromCart);
                                row.Cells.Add(cell);

                                tblCart.Rows.Add(row);
                            }
                            else {
                                cartQuantity += item.Quantity;
                                itemQty+= item.Quantity;
                                TableRow row = new TableRow();
                                TableCell cell = new TableCell();
                                if (firstFound)
                                {
                                    cell.Text = "<img src=\"" + product.image + "\" />";
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    HyperLink link = new HyperLink();
                                    link.Text = product.ProductName;
                                    link.NavigateUrl = "product.aspx?Id=" + product.Id;
                                    cell.Controls.Add(link);
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    cell.Text = product.UnitPrice.ToString();
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    cell.ID = product.ProductName;
                                    cell.Text = item.Quantity.ToString();
                                    row.Cells.Add(cell);

                                    cell = new TableCell();
                                    Button removeFromCart = new Button();
                                    removeFromCart.Text = "Remove From Cart";
                                    removeFromCart.ID = product.Id.ToString(); //Will use this when adding the onClick event handler so that it can add this product ID to the user's cart
                                    removeFromCart.CssClass = "addToCartButton";
                                    removeFromCart.Command += new CommandEventHandler(RemoveFromCart);
                                    removeFromCart.CommandArgument = product.Id.ToString();
                                    cell.Controls.Add(removeFromCart);
                                    row.Cells.Add(cell);
                                    tblCart.Rows.Add(row);
                                    firstFound = false;
                                }
                                else
                                {
                                    TableCell c = tblCart.FindControl(product.ProductName.ToString()) as TableCell;
                                    c.Text = itemQty.ToString();
                                }

                            }
                        }
                        lblCartQuantity.Text = "(" + cartQuantity + " items)";
                        lblSubtotal.Text += cart.SubTotal.ToString("N2");

                    }
                }
            }
        }
        protected void populateData()
        {
            int orderId = Int32.Parse(Request.QueryString["Id"].ToString());
            int userId = Int32.Parse(Session["LoggedInId"].ToString());

            using (StoreContent context = new StoreContent())
            {

                var orderItems = from c in context.OrderItem
                                 where c.OrderID == orderId && c.CustomerID == userId
                                 select c;

                if (orderItems != null)
                {

                    foreach (OrderItem item in orderItems)
                    {

                        var product = (from c in context.Products
                                       where c.Id == item.ProductID
                                       select c).FirstOrDefault();

                        TableRow row = new TableRow();
                        TableCell cell;

                        cell = new TableCell();
                        HyperLink link = new HyperLink();
                        link.NavigateUrl = "product.aspx?Id=" + product.Id;
                        link.Text = product.ProductName;
                        cell.Controls.Add(link);
                        row.Cells.Add(cell);

                        cell = new TableCell();
                        cell.Text = item.Quantity.ToString();
                        row.Cells.Add(cell);

                        cell = new TableCell();

                        if (item.Quantity > 1)
                        {
                            cell.Text = "$" + (product.UnitPrice * item.Quantity).ToString("N2") + " ($" + product.UnitPrice.ToString("N2") + " ea)";
                        } else
                        {
                            cell.Text = "$" + product.UnitPrice.ToString("N2");
                        }

                        row.Cells.Add(cell);

                        tblOrderDetail.Rows.Add(row);

                    }

                    var orderTotal = (from c in context.Orders
                                      where c.Id == orderId
                                      select c).FirstOrDefault();

                    if (orderTotal != null)
                    {
                        lblOrder.Text = "Order Date: " + orderTotal.OrderDate.ToString("MM/dd/yyyy");
                        lblTotal.Text = orderTotal.SubTotal.ToString("N2");
                    }

                }

            }
        }
        protected void transactionApproved()
        {
            int userId = Int32.Parse(Session["LoggedInId"].ToString());
            randomDeliveryTime = rand.Next(10, 60);
            String fact = randomFact[rand.Next(0, randomFact.Length - 1)];
            String email;
            using (StoreContent context = new StoreContent())
            {
                var customerEmail = (from c in context.Customer
                                     where c.Id == userId
                                     select c).FirstOrDefault();

                email = customerEmail.email.ToString();
            }

            lblPageName.Text = "CHECKOUT SUCCESSFUL";
            lblStatus.Text = "The transaction was approved. Your credit card will be charged $" + transactionAmount.ToString();
            lblShipping.Text = "Your order will be shipped by supersonic drone for free!";
            lblDelivery.Text = "Drone will depart in 15 minutes and arrive at your doorstep in " + randomDeliveryTime + " minutes!";
            lblWarning.Text = "Please watch the sky when opening your door, as Above Treeline accepts no liability for customers hit by flying boxes.";
            lblConfirmationEmail.Text = "You should receive an order confirmation shortly at " + email;
            lblRandomFact.Text = "Did you know? " + fact;

            completeOrder(userId, transactionId);
        }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {

                using (StoreContent content = new StoreContent())
                {

                    var checkUsername = (from c in content.Customer
                                     where c.UserName == txtUsername.Text
                                     select c).FirstOrDefault();

                    if (checkUsername == null)
                    {

                        Customer newCustomer = content.Customer.Create();
                        newCustomer.FirstName = txtFirstName.Text;
                        newCustomer.LastName = txtLastName.Text;

                        //adding different type of addresses

                        //billing first
                        TypeofAddress add = new TypeofAddress();
                        add.UserName = txtUsername.Text;
                        add.typeAdd = "Billing";
                        add.Address = txtBillingAddress.Text;
                        add.City = txtBillingCity.Text;
                        add.State = ddlBillingState.SelectedItem.ToString();
                        add.Zip = Int32.Parse(txtBillingZip.Text);
                        content.Address.Add(add);

                        //shipping address now
                        add = new TypeofAddress();
                        add.UserName = txtUsername.Text;
                        add.typeAdd = "Shipping";
                        add.Address = txtShippingAddress.Text;
                        add.City = txtShippingCity.Text;
                        add.State = ddlShippingState.SelectedItem.ToString();
                        add.Zip = Int32.Parse(txtShippingZip.Text);
                        content.Address.Add(add);

                        newCustomer.email = txtEmail.Text;
                        newCustomer.UserName = txtUsername.Text;

                        //password will be hashed here
                        newCustomer.Password = FinalProject.SecuredPasswordHash.GenerateHash(txtPass1.Text);

                        if (chkNewsletter.Checked)
                        {
                            newCustomer.NewsLetter = true;
                        }
                        else
                        {
                            newCustomer.NewsLetter = false;
                        }

                        content.Customer.Add(newCustomer);
                        content.SaveChanges();

                        Session["LoggedInId"] = newCustomer.Id;
                        Response.Redirect("account.aspx?Id=" + newCustomer.Id.ToString());

                    } else
                    {
                        lblPageName.Text = "Username is already taken! Please choose another.";
                        lblPageName.ForeColor = System.Drawing.Color.Red;
                    }

                }
            }
        }
        protected void verifyUser()
        {
            using (StoreContent context = new StoreContent())
            {
                try {
                    int userId = Int32.Parse(Session["LoggedInId"].ToString());
                    int orderId = Int32.Parse(Request.QueryString["Id"].ToString());

                    var order = (from c in context.Orders
                                 where c.Id == orderId && c.CustomerID == userId
                                 select c).FirstOrDefault();

                    if (order == null)
                    {
                        Response.Redirect("index.aspx");
                    }

                } catch
                {
                    Response.Redirect("index.aspx");
                }

            }
        }
示例#26
0
        private void RemoveFromCart(object sender, CommandEventArgs e)
        {
            int remId = Convert.ToInt32(e.CommandArgument);
            int cartId = Int32.Parse(Session["cartID"].ToString());

            using (StoreContent context = new StoreContent())
            {
                var items = (from o in context.OrderItem
                            where o.OrderID == cartId && o.ProductID == remId
                            select o).ToList();
                var cart = (from c in context.Orders
                            where c.Id == cartId
                            select c).FirstOrDefault();
                var product = (from p in context.Products
                               where p.Id == remId
                               select p).First();
                foreach (OrderItem item in items)
                {
                    cart.SubTotal -= (decimal)(item.Quantity * product.UnitPrice);
                    product.Stock += item.Quantity;
                    context.OrderItem.Remove(item);
                    context.SaveChanges();
                }
            }
            Response.Redirect("cart.aspx");
        }
        private void AddToCart(object sender, CommandEventArgs e)
        {
            if (Session["LoggedInId"] == null)
            {
                lblProductName.Text = "Please sign in or register to add items!";
                lblProductName.ForeColor = System.Drawing.Color.Red;
                return;
            }

            int addId = Convert.ToInt32(e.CommandArgument);
            int custId, cartId;
            bool hasCart = false;
            if (Session["LoggedInId"] == null)
                custId = 1;
            else
                custId = Int32.Parse(Session["LoggedInId"].ToString());

            if (Session["CartID"] == null)
            {
                using (StoreContent context = new StoreContent())
                {
                    var check = (from c in context.Orders
                                 where c.CustomerID == custId && c.OrderStatus == "Active"
                                 orderby c.Id descending
                                 select c).FirstOrDefault();
                    if (check != null)
                    {
                        Session["cartID"] = check.Id;
                        hasCart = true;
                    }
                }
                if (!hasCart)
                {
                    var cart = new Orders();
                    cart.CustomerID = custId;
                    cart.OrderStatus = "Active";
                    cart.OrderDate = DateTime.Now;
                    cart.SubTotal = 0;
                    using (StoreContent context = new StoreContent())
                    {
                        context.Orders.Add(cart);
                        context.SaveChanges();
                        Session["cartID"] = cart.Id;
                    }
                }
            }
            cartId = Int32.Parse(Session["cartID"].ToString());
            using (StoreContent context = new StoreContent())
            {
                int quantityToAdd;

                var cart = (from c in context.Orders
                            where c.Id == cartId
                            select c).FirstOrDefault();
                var item = (from p in context.Products
                            where p.Id == addId
                            select p).FirstOrDefault();
                var checkItem = (from c in context.OrderItem
                                 where c.ProductID == item.Id && c.OrderID == cart.Id
                                 select c).FirstOrDefault();

                if (checkItem != null)
                {
                    checkItem.Quantity = checkItem.Quantity + Int32.Parse(ddlQuantity.SelectedValue);
                    quantityToAdd = Int32.Parse(ddlQuantity.SelectedValue);
                }
                else
                {

                    var orditem = new OrderItem();
                    orditem.CustomerID = custId;
                    orditem.OrderID = cartId;
                    orditem.ProductID = item.Id;

                    if (Int32.Parse(ddlQuantity.SelectedValue) > 1)
                    {
                        quantityToAdd = Int32.Parse(ddlQuantity.SelectedValue);
                        orditem.Quantity = quantityToAdd;
                    }
                    else
                    {
                        quantityToAdd = 1;
                        orditem.Quantity = Int32.Parse(ddlQuantity.SelectedValue);
                    }

                    context.OrderItem.Add(orditem);
                }

                if (cart != null)
                {
                    cart.SubTotal += Decimal.Parse((item.UnitPrice * Int32.Parse(ddlQuantity.SelectedValue)).ToString()); //Subtotal now reflects unit price * quantity of units  --RID
                }
                item.Stock = item.Stock - quantityToAdd;   //remove from stock
                context.SaveChanges();

            }

            Page.Response.Redirect(Page.Request.Url.ToString(), true);
        }