public ActionResult SelectMenu(MenuItemModel menuItem) { try { if (ModelState.IsValid) { MenuItem item = _database.MenuItems.Single(menu => menu.Id == menuItem.Id); Payment payment = _database.Payments.CreateObject(); payment.MenuItemId = item.Id; payment.UserId = WebSecurity.CurrentUserId; payment.Date = DateTime.Now; payment.RestaurantID = item.UserId; payment.ReservationHour = menuItem.ReservationHour; _database.Payments.Attach(payment); _database.ObjectStateManager.ChangeObjectState(payment, EntityState.Added); _database.SaveChanges(); return RedirectToAction("Index","Payment"); } return View(menuItem); } catch (OptimisticConcurrencyException optimisticConcurrencyException) { _database.MenuItems.Detach(menuItem); ModelState.AddModelError("", "Optimistic Concurrency Exception occurred. Save Again to override"); } catch (Exception ex) { ModelState.AddModelError("", "See exception and inner exception"); } return View(menuItem); }
public ActionResult SelectMenu(int id) { MenuItem menuItem = _database.MenuItems.Single(menu => menu.Id == id); UserProfile restaurant = _database.UserProfiles.Where(user => user.UserId == menuItem.UserId).FirstOrDefault(); List<string> reservations=new List<string>(); if(restaurant.ReservationStart.HasValue) { bool isIn = true; string time = string.Format("{0}:{1}", restaurant.ReservationStart.Value.ToString("hh"), restaurant.ReservationStart.Value.ToString("mm")); TimeSpan start = restaurant.ReservationStart.Value; while (isIn) { time = string.Format("{0}:{1}", start.ToString("hh"), start.ToString("mm")); reservations.Add(time); start=start.Add(TimeSpan.FromMinutes(restaurant.ReservationDuration.Value)); isIn = (start <= restaurant.ReservationEnd.Value); } } else { reservations.AddRange(new string[]{"11:30", "12:00", "12:30", "13:00", "13:30", "14:00"}); } //ViewBag.ReservationHour = new SelectList(reservations); List<SelectListItem> selectListItems = new List<SelectListItem>(); foreach (string reservation in reservations) { selectListItems.Add(new SelectListItem(){Text=reservation, Value = reservation}); } MenuItemModel menuItemModel = new MenuItemModel(); menuItemModel.Id = menuItem.Id; menuItemModel.Price = menuItem.Price; menuItemModel.Name = menuItem.Name; menuItemModel.ReservationHour = "12:00"; menuItemModel.RestaurantReservationHours = selectListItems; return View(menuItemModel); }