//public ViewResult Edit()
        //{
        //    return View();
        //}


        // MENU CRUD
        public IActionResult Add_Menu(int restaurant_id, string menu_title)
        {
            var menu_row = DineOutContext.Menu.Where(r => r.RestaurantId == restaurant_id).FirstOrDefault();

            if (menu_row != null)
            {
                TempData["message"] = $"You already have a menu created!";
                return(RedirectToAction("Index"));
            }
            else
            {
                Menu menu_object = new Menu();
                menu_object.RestaurantId = restaurant_id;
                var datetime = DateTime.Now.ToString("yyyy-MM-dd");
                menu_object.CreatedOn = DateTime.Today;
                menu_object.Title     = menu_title;
                Console.WriteLine(menu_object);

                DineOutContext.Add(menu_object);
                DineOutContext.SaveChanges();

                TempData["message"] = $"Welcome! Your menu has been created!";
                return(RedirectToAction("Menu"));
            }
        }
        public IActionResult OrderDetails(
            int menuId, int customerId, int restaurantId)
        {
            ///The action that returns the orderable menu. this allows the customer to build their order
            ///@param int menuId
            ///@param int restaurantId
            ///@param int customerId
            //Those parameters are hard coded for testing purpose
            menuId       = 1;
            customerId   = 1;
            restaurantId = 1;

            Order nOrder = new Order
            {
                CustomerId   = customerId,
                RestaurantId = restaurantId,
                StatusId     = 1
            };

            DineOutContext.Add(nOrder);
            DineOutContext.SaveChanges();

            orderData.Order
                            = DineOutContext.Order.Find(nOrder.OrderId);
            orderData.Menu  = DineOutContext.Menu.Find(menuId);
            orderData.Items = DineOutContext.Item
                              .ToList().FindAll(x => x.MenuId == menuId);
            orderData.Restaurant = DineOutContext.Restaurant
                                   .Find(nOrder.RestaurantId);

            return(View(orderData));
        }
        public IActionResult Register(Customer customer, string firstPassword)
        {
            if (firstPassword != customer.PasswordHash)
            {
                // Passwords don't match
                return(RedirectToAction("CustomerRegistration"));
            }
            // Generate Salt
            RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();

            byte[] buff = new byte[31];
            rng.GetBytes(buff);
            string salt = Convert.ToBase64String(buff);

            // Generate Hash
            string hashed = GenerateHash(customer.PasswordHash, salt);

            // Overwrite to delete the string passsword
            customer.PasswordHash = String.Format("{0}:{1}", salt, hashed);

            try
            {
                // Try to save new customer
                DineOutContext.Add(customer);
                DineOutContext.SaveChanges();
                return(RedirectToAction("Index"));
            }
            catch
            {
                // Return to same view if cannot save to database
                return(RedirectToAction("CustomerRegistration"));
            }
        }