public ActionResult EditCustomer(Customer account)
        {
            using (ShoppingCartDBEntities1Entities db = new ShoppingCartDBEntities1Entities())
            {
                try
                {
                    if (!ModelState.IsValid)
                    {
                        ViewBag.Message = "Error editing account:";
                        return(View("EditCustomer", account));
                    }

                    Customer theAccount = db.Customers.First(p => p.ID == account.ID);

                    theAccount.FirstName     = account.FirstName;
                    theAccount.LastName      = account.LastName;
                    theAccount.StreetAddress = account.StreetAddress;
                    theAccount.City          = account.City;
                    theAccount.State         = account.State;
                    theAccount.Zip           = account.Zip;
                    theAccount.Phone         = account.Phone;
                    theAccount.Email         = account.Email;
                    db.SaveChanges();

                    return(RedirectToAction("Customers"));
                }
                catch (Exception ex)
                {
                    ViewBag.Message = "Error editing account: " + GetError(ex);
                    return(View("EditCustomer", account));
                }
            }
        }
        public ActionResult ShoppingCartAccount(Customer accountToCreate)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    ViewBag.Message = "Please correct the following error(s):";
                    return(View());
                }

                string  ItemList      = "";
                decimal SubTotalPrice = 0.0M;
                for (int i = 0; i < tabViews.Length; ++i)
                {
                    if (Session[tabViews[i] + "ItemAmount"] != null)
                    {
                        int amount = Int32.Parse(Session[tabViews[i] + "ItemAmount"].ToString());
                        ItemList += GetSessionItemString2(tabViews[i], tabHeadings[i], amount, ref SubTotalPrice, ItemList);
                    }
                }
                ItemList += String.Format("%%%%%%<h3>SubTotal: {0:C}", SubTotalPrice);
                ItemList += String.Format("%%%Tax: {0:C}", decimal.Round(SubTotalPrice * taxRate, 2));
                ItemList += String.Format("%%%Total Purchase Price: {0:C}</h3>", SubTotalPrice +
                                          decimal.Round(SubTotalPrice * taxRate, 2));

                Session["Name"]     = String.Format("{0} {1}", accountToCreate.FirstName, accountToCreate.LastName);
                Session["Email"]    = accountToCreate.Email;
                Session["ItemList"] = ItemList;

                using (ShoppingCartDBEntities1Entities db = new ShoppingCartDBEntities1Entities())
                {
                    db.Customers.Add(accountToCreate);
                    db.SaveChanges();
                }

                for (int i = 0; i < tabViews.Length; ++i)
                {
                    if (Session[tabViews[i] + "ItemAmount"] != null)
                    {
                        int amount = Int32.Parse(Session[tabViews[i] + "ItemAmount"].ToString());
                        for (int j = 1; j <= amount; ++j)
                        {
                            Session[tabViews[i] + "Amount" + j]   = "0";
                            Session[tabViews[i] + "Price" + j]    = 0.0;
                            Session[tabViews[i] + "Option_" + j]  = "";
                            Session[tabViews[i] + "Option2_" + j] = "";
                        }
                    }
                }

                return(RedirectToAction("ConfirmPurchase"));
            }
            catch (Exception ex)
            {
                ViewBag.Message = "Error processing data: " + GetError(ex);
                return(View());
            }
        }
        public ActionResult Customers(string sortOrder)
        {
            using (ShoppingCartDBEntities1Entities db = new ShoppingCartDBEntities1Entities())
            {
                ViewBag.Message = "Customer Accounts:";

                ViewBag.LastNameSortParm  = String.IsNullOrEmpty(sortOrder) ? "LastName desc" : "";
                ViewBag.FirstNameSortParm = (sortOrder == "FirstName" ? "FirstName desc" : "FirstName");
                ViewBag.IDSortParm        = (sortOrder == "ID" ? "ID desc" : "ID");
                ViewBag.AmountSortParm    = (sortOrder == "Amount" ? "Amount desc" : "Amount");

                var accounts = from a in db.Customers select a;

                switch (sortOrder)
                {
                case "FirstName":
                    accounts = accounts.OrderBy(s => s.FirstName);
                    break;

                case "FirstName desc":
                    accounts = accounts.OrderByDescending(s => s.FirstName);
                    break;

                case "ID":
                    accounts = accounts.OrderBy(s => s.ID);
                    break;

                case "ID desc":
                    accounts = accounts.OrderByDescending(s => s.ID);
                    break;

                case "Amount":
                    accounts = accounts.OrderBy(s => s.ID);
                    break;

                case "Amount desc":
                    accounts = accounts.OrderByDescending(s => s.ID);
                    break;

                case "LastName desc":
                    accounts = accounts.OrderByDescending(s => s.LastName);
                    break;

                default:
                    accounts = accounts.OrderBy(s => s.LastName);
                    break;
                }

                return(View(accounts.ToList()));
            }
        }
 public ActionResult EditCustomer(int ID)
 {
     using (ShoppingCartDBEntities1Entities db = new ShoppingCartDBEntities1Entities())
     {
         ViewBag.Message = "Edit Customer Account:";
         try
         {
             Customer theAccount = db.Customers.First(p => p.ID == ID);
             return(View(theAccount));
         }
         catch
         {
             return(RedirectToAction("Error"));
         }
     }
 }