public ActionResult MyRestaurant() { var viewModel = new RestaurantIndexData(); var user = this.HttpContext.User; // Here is the key!!, don't pass it in, directaly get it!! if (user == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } viewModel.Restaurants = db.Restaurants.Where(c => c.Email == user.Identity.Name); viewModel.Dishes = viewModel.Restaurants.Single().Dishes; return(View(viewModel)); }
// GET: Restaurants public ActionResult Index(int?id, int?DishID, int?changeNumber) { var viewModel = new RestaurantIndexData(); viewModel.Restaurants = db.Restaurants .Include(r => r.Category) .Include(r => r.Dishes.Select(d => d.Restraurants)) .OrderBy(r => r.UserName); viewModel.Cart = db.Cart; if (id != null) { ViewBag.RestaurantID = id.Value; viewModel.Dishes = viewModel.Restaurants.Where(r => r.ID == id.Value).Single().Dishes; } if (DishID != null) { if (ModelState.IsValid) { var cartItem = new CartItem(); var user = this.HttpContext.User; var customer = db.Customers.Where(c => c.Email == user.Identity.Name).FirstOrDefault(); cartItem.CustomerID = customer.ID; cartItem.DishID = DishID ?? default(int); cartItem.RestaurantID = id ?? default(int); if (changeNumber == 0) //when adding, changeNumber == 0 { _CartService.AddToCart(cartItem); } else if (changeNumber == 1) //when removing, changeNumber == 1 { _CartService.MinFromCart(cartItem); } else if (changeNumber == 2) // When canceling, changeNumber == 2 { _CartService.CancelFromCart(cartItem); } } ViewBag.DishID = DishID.Value; viewModel.Cart = db.Cart; } return(View(viewModel)); }
/* * // GET: Restaurant * public async Task<IActionResult> Index() * { * return View(await _context.Restaurants.ToListAsync()); * } * public async Task<IActionResult> Index(string searchString) * { * ViewBag.NameSortParm = searchString == "Name" ? "name_desc" : "Name"; * ViewBag.AddressSortParm = searchString == "Address" ? "address_desc" : "Address"; * ViewBag.CitySortParm = searchString == "City" ? "city_desc" : "City"; * ViewBag.StateSortParm = searchString == "State" ? "state_desc" : "State"; * ViewBag.PhoneSortParm = searchString == "Phone" ? "phone_desc" : "Phone"; * ViewBag.OwnerSortParm = searchString == "OwnerName" ? "owner_desc" : "OwnerName"; * ViewBag.DateSortParm = searchString == "RegistrationDate" ? "date_desc" : "RegistrationDate"; * * var restaurants = from m in _context.Restaurants * select m; * * switch (searchString) * { * case "Name": * restaurants = restaurants.OrderBy(s => s.Name); * break; * case "name_desc": * restaurants = restaurants.OrderByDescending(s => s.Name); * break; * case "Address": * restaurants = restaurants.OrderBy(s => s.Address); * break; * case "City": * restaurants = restaurants.OrderBy(s => s.City); * break; * case "State": * restaurants = restaurants.OrderBy(s => s.State); * break; * case "Phone": * restaurants = restaurants.OrderBy(s => s.Phone); * break; * case "OwnerName": * restaurants = restaurants.OrderBy(s => s.OwnerName); * break; * case "RegistrationDate": * restaurants = restaurants.OrderBy(s => s.RegistrationDate); * break; * default: * restaurants = restaurants.OrderBy(s => s.Name); * break; * } * * if (!String.IsNullOrEmpty(searchString)) * { * restaurants = restaurants.Where(s => s.Name.Contains(searchString)); * } * * return View(await restaurants.ToListAsync()); * }*/ public IActionResult Index(int?id, int?plateID, string searchString) { ViewBag.CurrentFilter = searchString; var viewModel = new RestaurantIndexData(); viewModel.Restaurants = _context.Restaurants .OrderBy(i => i.Name); if (!String.IsNullOrEmpty(searchString)) { viewModel.Restaurants = _context.Restaurants .Where(s => s.Name.Contains(searchString)); } else if (id != null) { ViewBag.RestaurantID = id.Value; // Lazy loading // //viewModel.Serves = viewModel.Serves.Where( // i => i.RestaurantID == id.Value); var selectedRestaurant = viewModel.Restaurants.Where(x => x.ID == id).Single(); _context.Entry(selectedRestaurant).Collection(x => x.Serves).Load(); foreach (Serve serve in selectedRestaurant.Serves) { _context.Entry(serve).Reference(x => x.Plate).Load(); } viewModel.Serves = selectedRestaurant.Serves; } /* * if (plateID != null) * { * ViewBag.PlateID = plateID.Value; * viewModel.Serves = viewModel.Serves.Where( * x => x.PlateID == plateID); * }*/ return(View(viewModel)); }