public ActionResult Reserve(TableRentalViewModel book) { var userid = User.Identity.GetUserId(); Table tableToRent = db.Tables.Find(book.TableId); if (book.Seats <= 10) { var userInDb = db.Users.SingleOrDefault(c => c.Id == userid); TableBooking tableBook = new TableBooking { TableId = tableToRent.Id, UserId = userid, BookingMade = DateTime.Now, BookingDate = book.BookingDate, BookingTime = book.BookingTime, Seats = book.Seats, Status = TableBooking.StatusEnum.Requested, }; db.Booking.Add(tableBook); var tableInDb = db.Tables.SingleOrDefault(c => c.Id == book.TableId); tableInDb.Avaibility -= 1; db.SaveChanges(); return(RedirectToAction("Index", "TableBook")); } else { ViewBag.Errors = "You cannot book more than 10 seats!"; return(RedirectToAction("Index", new RouteValueDictionary( new { controller = "TableDetail", action = "Index", Id = book.TableId }))); } }
private TableRentalViewModel getVMFromTableBook(TableBooking bookRent) { Table tableSelected = db.Tables.Where(x => x.Id == bookRent.TableId).FirstOrDefault(); var userDetails = from u in db.Users where u.Id.Equals(bookRent.UserId) select new { u.Id, u.FirstName, u.Surname, u.Email }; TableRentalViewModel model = new TableRentalViewModel { Id = bookRent.Id, TableId = tableSelected.Id, Name = tableSelected.Name, Description = tableSelected.Description, Image = tableSelected.Image, Avaibility = tableSelected.Avaibility, BookingMade = bookRent.BookingMade, BookingDate = bookRent.BookingDate, BookingTime = bookRent.BookingTime, Seats = bookRent.Seats, TableNumber = bookRent.TableNumber, Status = bookRent.Status.ToString(), Email = userDetails.ToList()[0].Email, FirstName = userDetails.ToList()[0].FirstName, LastName = userDetails.ToList()[0].Surname, UserId = userDetails.ToList()[0].Id }; return(model); }
public ActionResult Approve(TableRentalViewModel model) { if (model.Id == 0) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (ModelState.IsValid) { TableBooking tableBook = db.Booking.Find(model.Id); tableBook.Status = TableBooking.StatusEnum.Approved; tableBook.TableNumber = model.TableNumber; db.SaveChanges(); } SendEmail(model.Id); return(RedirectToAction("Index", "TableBook")); }
// GET: BookDetail public ActionResult Index(int id) { var userid = User.Identity.GetUserId(); var user = db.Users.FirstOrDefault(u => u.Id == userid); var bookModel = db.Tables.SingleOrDefault(b => b.Id == id); //var rentalPrice = 0.0; //var oneMonthRental = 0.0; //var sixMonthRental = 0.0; //var rentalCount = 0; //if (userid != null && !User.IsInRole(SD.AdminUserRole)) //{ // var chargeRate = from u in db.Users // join m in db.MembershipTypes on u.MembershipTypeId equals m.Id // where u.Id.Equals(userid) // select new { m.ChargeRateOneMonth, m.ChargeRateSixMonth, u.RentalCount }; // oneMonthRental = Convert.ToDouble(bookModel.Price) * Convert.ToDouble(chargeRate.ToList()[0].ChargeRateOneMonth) / 100; // sixMonthRental = Convert.ToDouble(bookModel.Price) * Convert.ToDouble(chargeRate.ToList()[0].ChargeRateSixMonth) / 100; // rentalCount = Convert.ToInt32(chargeRate.ToList()[0].RentalCount); //} TableRentalViewModel model = new TableRentalViewModel { TableId = bookModel.Id, Avaibility = bookModel.Avaibility, Description = bookModel.Description, Image = bookModel.Image, Name = bookModel.Name, UserId = userid, }; return(View(model)); }