public async Task <IViewComponentResult> InvokeAsync(int id) { bool checkin; var reservations = RestaurantsManager.GetCheckinTodayReservationsByRestaurantID(id); List <ResCustomerModelView> viewReservations = new List <ResCustomerModelView>(); foreach (ReservationEntry resAux in reservations) { var customer = CustomersManager.GetCustomerByCustomerId(resAux.CustomerId); if (resAux.CheckinDateTime == null) { checkin = false; } else { checkin = true; } var viewReservation = new ResCustomerModelView { RestaurantID = (int)resAux.RestaurantId, CustomerId = (int)resAux.CustomerId, CustomerName = $"{customer.User.FirstName} {customer.User.LastName}", Restaurant = resAux.Restaurant.RestaurantName, ReservationEntryId = resAux.ReservationId, PartySize = resAux.PartySize, ReservationStatus = resAux.ReservationStatus, EntryOrigin = resAux.EntryOrigin, ReservationDate = resAux.ReservationDateTime, Checkin = checkin }; viewReservations.Add(viewReservation); } return(View(viewReservations)); }
//Edit Reservation public IActionResult ReservationEdit(int id) { LogRestaurant(); if (TempData["ErrorMessage"] != null) { ViewBag.ErrorMessage = TempData["ErrorMessage"]; } if (TempData["Message"] != null) { ViewBag.Message = TempData["Message"]; } var reservation = RestaurantsManager.GetReservationById(id); var userId = CustomersManager.GetUserIdByCustomerId(reservation.CustomerId); var customerUser = UsersManager.GetUserByUserId(userId); string fullName = $"{customerUser.FirstName} {customerUser.LastName}"; var viewreservation = new ResCustomerModelView { CustomerName = fullName, EntryOrigin = reservation.EntryOrigin, PartySize = reservation.PartySize, ReservationStatus = reservation.ReservationStatus, ReservationDate = reservation.ReservationDateTime, ReservationEntryId = reservation.ReservationId, RestaurantID = reservation.RestaurantId }; ViewBag.ReservationStatus = GetReservationStatus(); return(View(viewreservation)); }
//Edit Reservation public IActionResult ReservationEdit(int id) { LogRestaurant(); if (TempData["ErrorMessage"] != null) { ViewBag.ErrorMessage = TempData["ErrorMessage"]; } if (TempData["Message"] != null) { ViewBag.Message = TempData["Message"]; } var reservation = RestaurantsManager.GetReservationById(id); var viewReservation = new ResCustomerModelView { RestaurantID = (int)reservation.RestaurantId, CustomerId = (int)reservation.CustomerId, Restaurant = reservation.Restaurant.RestaurantName, ReservationEntryId = reservation.ReservationId, PartySize = reservation.PartySize, ReservationStatus = reservation.ReservationStatus, EntryOrigin = reservation.EntryOrigin, ReservationDate = reservation.ReservationDateTime }; return(View(viewReservation)); }
public IActionResult ReservationManage() { LogRestaurant(); ClaimsPrincipal cp = this.User; var claims = cp.Claims.ToList(); var restId = Convert.ToInt32(claims.SingleOrDefault(p => p.Type == "RestaurantID").Value); var reservations = RestaurantsManager.GetManageReservations(restId); List <ResCustomerModelView> viewReservations = new List <ResCustomerModelView>(); foreach (ReservationEntry resAux in reservations) { if (resAux.ReservationStatus != "on Hold") { var customer = CustomersManager.GetCustomerByCustomerId(resAux.CustomerId); var viewReservation = new ResCustomerModelView { RestaurantID = (int)resAux.RestaurantId, CustomerId = (int)resAux.CustomerId, CustomerName = $"{customer.User.FirstName} {customer.User.LastName}", Restaurant = resAux.Restaurant.RestaurantName, ReservationEntryId = resAux.ReservationId, PartySize = resAux.PartySize, ReservationStatus = resAux.ReservationStatus, EntryOrigin = resAux.EntryOrigin, ReservationDate = resAux.ReservationDateTime }; viewReservations.Add(viewReservation); } } ViewBag.RestaurantID = restId; return(View(viewReservations)); }
public async Task <IViewComponentResult> InvokeAsync(int id) { var reservations = RestaurantsManager.GetManageReservations(id); List <ResCustomerModelView> viewReservations = new List <ResCustomerModelView>(); foreach (ReservationEntry resAux in reservations) { if (resAux.ReservationStatus == "on Hold") { var customer = CustomersManager.GetCustomerByCustomerId(resAux.CustomerId); var viewReservation = new ResCustomerModelView { RestaurantID = (int)resAux.RestaurantId, CustomerId = (int)resAux.CustomerId, CustomerName = $"{customer.User.FirstName} {customer.User.LastName}", Restaurant = resAux.Restaurant.RestaurantName, ReservationEntryId = resAux.ReservationId, PartySize = resAux.PartySize, ReservationStatus = resAux.ReservationStatus, EntryOrigin = resAux.EntryOrigin, ReservationDate = resAux.ReservationDateTime }; viewReservations.Add(viewReservation); } } return(View(viewReservations)); }
public IActionResult ReservationDeny(ResCustomerModelView viewreservation) { LogRestaurant(); var reservation = RestaurantsManager.GetReservationById(viewreservation.ReservationEntryId); reservation.CustomerMessage = viewreservation.Message; reservation.ReservationStatus = "denied"; RestaurantsManager.UpdateReservation(reservation); return(RedirectToAction("ReservationManage")); }
public IActionResult ReservationEdit(ResCustomerModelView viewReservation) { LogRestaurant(); var reservation = RestaurantsManager.GetReservationById(viewReservation.ReservationEntryId); DateTime eDatetime = Convert.ToDateTime("1/1/0001 12:00:00 AM"); if (viewReservation.ReservationDate == eDatetime) { viewReservation.ReservationDate = reservation.ReservationDateTime; } if (viewReservation.ReservationDate.Date < DateTime.Today.Date && viewReservation.ReservationStatus == "confirmed") { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!!! Your Reservation couldn't be updated. Reservations are only for future dates."; return(RedirectToAction("ReservationEdit", viewReservation.ReservationEntryId)); } else { if (viewReservation.PartySize <= 0) { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!!! Your Reservation couldn't be Updated. PartySize must be a non-zero positive number"; return(RedirectToAction("ReservationEdit", viewReservation.ReservationEntryId)); } else { if (viewReservation.PartySize >= 100) { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!!! Your Reservation couldn't be Updated. PartySize not supported by the Restaurant."; return(RedirectToAction("ReservationEdit", viewReservation.ReservationEntryId)); } else { reservation.ReservationStatus = GetReservationStatusValue(viewReservation.ReservationStatus); reservation.ReservationDateTime = viewReservation.ReservationDate; reservation.PartySize = viewReservation.PartySize; reservation.EntryOrigin = viewReservation.EntryOrigin; RestaurantsManager.UpdateReservation(reservation); TempData["Message"] = null; TempData["ErrorMessage"] = null; return(RedirectToAction("ReservationManage")); } } } }
//Customer's Reservation details from History public IActionResult ReservationHistoryDetails(int id) { LogRestaurant(); var reservation = RestaurantsManager.GetReservationById(id); var viewReservation = new ResCustomerModelView { RestaurantID = (int)reservation.RestaurantId, CustomerId = (int)reservation.CustomerId, Restaurant = reservation.Restaurant.RestaurantName, ReservationEntryId = reservation.ReservationId, PartySize = reservation.PartySize, ReservationStatus = reservation.ReservationStatus, EntryOrigin = reservation.EntryOrigin, ReservationDate = reservation.ReservationDateTime, Message = reservation.CustomerMessage }; return(View(viewReservation)); }
//Deny Reservation public IActionResult ReservationDeny(int id) { LogRestaurant(); var reservation = RestaurantsManager.GetReservationById(id); var userId = CustomersManager.GetUserIdByCustomerId(reservation.CustomerId); var customerUser = UsersManager.GetUserByUserId(userId); string fullName = $"{customerUser.FirstName} {customerUser.LastName}"; var viewreservation = new ResCustomerModelView { CustomerName = fullName, EntryOrigin = reservation.EntryOrigin, PartySize = reservation.PartySize, ReservationStatus = "denied", ReservationDate = reservation.ReservationDateTime, ReservationEntryId = reservation.ReservationId, RestaurantID = reservation.RestaurantId, }; return(View(viewreservation)); }
//Add Reservation public IActionResult ReservationCreate() { LogRestaurant(); if (TempData["ErrorMessage"] != null) { ViewBag.ErrorMessage = TempData["ErrorMessage"]; } if (TempData["Message"] != null) { ViewBag.Message = TempData["Message"]; } ViewBag.Restaurants = BasicGetRestaurants(); var viewReservation = new ResCustomerModelView { ReservationDate = DateTime.Now, PartySize = 1 }; return(View(viewReservation)); }
public async Task <IViewComponentResult> InvokeAsync(int id) { var reservations = RestaurantsManager.GetReservationsByCustomerID(id); List <ResCustomerModelView> viewReservations = new List <ResCustomerModelView>(); foreach (ReservationEntry resAux in reservations) { var viewReservation = new ResCustomerModelView { RestaurantID = (int)resAux.RestaurantId, CustomerId = (int)resAux.CustomerId, Restaurant = resAux.Restaurant.RestaurantName, ReservationEntryId = resAux.ReservationId, PartySize = resAux.PartySize, ReservationStatus = resAux.ReservationStatus, EntryOrigin = resAux.EntryOrigin, ReservationDate = resAux.ReservationDateTime, Message = resAux.CustomerMessage }; viewReservations.Add(viewReservation); } return(View(viewReservations)); }
public IActionResult ReservationCreate(ResCustomerModelView viewReservation) { LogRestaurant(); ClaimsPrincipal cp = this.User; var claims = cp.Claims.ToList(); var custId = Convert.ToInt32(claims.SingleOrDefault(p => p.Type == "CustomerID").Value); if (viewReservation.PartySize <= 0) { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!!! Your Reservation couldn't be created. PartySize must be a non-zero positive number"; return(RedirectToAction("ReservationCreate")); } else { if (viewReservation.PartySize >= 100) { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!!! Your Reservation couldn't be created. PartySize not supported by the Restaurant."; return(RedirectToAction("ReservationCreate")); } else { DateTime eDatetime = Convert.ToDateTime("1/1/0001 12:00:00 AM"); if (viewReservation.ReservationDate == eDatetime) { TempData["Message"] = null; TempData["ErrorMessage"] = "You must pick a date and time to complete your reservation."; return(RedirectToAction("ReservationCreate")); } else { if (viewReservation.ReservationDate.Date <= DateTime.Today.Date) { if (viewReservation.ReservationDate.Date == DateTime.Today.Date) { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!!! Your Reservation couldn't be created. Reservations for today are closed. Try the waitlist!"; } else { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!!! Your Reservation couldn't be created. Reservations are only for future dates."; } return(RedirectToAction("ReservationCreate")); } else { var reservation = new ReservationEntry { EntryOrigin = "app", PartySize = viewReservation.PartySize, CustomerId = custId, RestaurantId = viewReservation.RestaurantID, ReservationStatus = "on Hold", ReservationDateTime = viewReservation.ReservationDate, }; try { TempData["Message"] = "Your NEW Reservation was created. The restaurant's manager will evaluate the restaurant availability and will reply as soon as possible"; TempData["ErrorMessage"] = null; RestaurantsManager.CreateReservation(reservation); return(RedirectToAction(nameof(ReservationsShow))); } catch { return(View()); } } } } } }
public ActionResult ReservationEdit(ResCustomerModelView viewReservation) { LogRestaurant(); if (viewReservation.PartySize <= 0) { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!!! Your Reservation couldn't be updated. PartySize must be a non-zero positive number"; return(RedirectToAction("ReservationEdit", viewReservation.ReservationEntryId)); } else { if (viewReservation.PartySize >= 100) { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!!! Your Reservation couldn't be updated. PartySize not supported by the Restaurant."; return(RedirectToAction("ReservationEdit", viewReservation.ReservationEntryId)); } else { var reservation = RestaurantsManager.GetReservationById(viewReservation.ReservationEntryId); DateTime eDatetime = Convert.ToDateTime("1/1/0001 12:00:00 AM"); if (viewReservation.ReservationDate == eDatetime) { viewReservation.ReservationDate = reservation.ReservationDateTime; } if (viewReservation.ReservationDate.Date < DateTime.Today.Date) { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!!! Your Reservation couldn't be updated. Reservations are only for future dates."; return(RedirectToAction("ReservationEdit", viewReservation.ReservationEntryId)); } else { if (!(reservation.PartySize <= viewReservation.PartySize && reservation.ReservationDateTime == viewReservation.ReservationDate)) { if (reservation.ReservationStatus == "confirmed") { TempData["Message"] = "Your reservation will be processed again due to the new date or party size request. The restaurant's manager will evaluate the restaurant availability and will reply as soon as possible."; TempData["ErrorMessage"] = null; } else { TempData["Message"] = "Your Reservation was updated. The restaurant's manager will evaluate the restaurant availability and will reply as soon as possible."; TempData["ErrorMessage"] = null; } reservation.ReservationStatus = "on Hold"; } else { if (reservation.ReservationStatus == "confirmed") { TempData["Message"] = "Your Reservation was updated and confirmed."; TempData["ErrorMessage"] = null; } else { TempData["Message"] = "Your Reservation was updated. The restaurant's manager will evaluate the restaurant availability and will reply as soon as possible"; TempData["ErrorMessage"] = null; } } reservation.ReservationId = viewReservation.ReservationEntryId; reservation.PartySize = viewReservation.PartySize; reservation.ReservationDateTime = viewReservation.ReservationDate; reservation.EntryOrigin = "app"; try { RestaurantsManager.UpdateReservation(reservation); return(RedirectToAction(nameof(ReservationsShow))); } catch { return(View()); } } } } }