//Delete Room Booking public JsonResult DeleteRoomUsageDetails(int roomUsageId) { #region Get booked room // Get booked room based on Id when user click on booked room to delete. // System will update IsActive = false, when load booked rooms the system will // load all booked rooms with IsActive = true RoomUsage objRoomUsage = objBookingDBEntities.RoomUsages.Single(model => model.Id == roomUsageId); objRoomUsage.IsActive = false; objBookingDBEntities.SaveChanges(); #endregion #region Get user login //Get user based on user's login on the system. string userName = (string)Session["UserName"]; User u = objBookingDBEntities.Users.Single(model => model.UserName == userName); #endregion #region Send Email // if user has role is "Admin", the system will send an email to the user with // room information that has been deleted. if (u.Role != null && u.Role.Name == "Admin") { //Send email string content = System.IO.File.ReadAllText(Server.MapPath("~/Views/Shared/_TemplateSendEmail.cshtml")); content = content.Replace("{{RoomNumber}}", objRoomUsage.Room.RoomNumber); content = content.Replace("{{BookingDate}}", objRoomUsage.BookingDate.ToString("dd-MMM-yyyy")); content = content.Replace("{{BookingHours}}", objRoomUsage.BookingHour.Name); SendMail(objRoomUsage.User.Email, "Your room booking has been cancelled.", content); //End Send email } #endregion return(Json(new { message = "Record Successfully Deleted.", success = true }, JsonRequestBehavior.AllowGet)); }
public ActionResult Index(BookingViewModel objBookingViewModel) { //Users can only choose a maximum of 2 time frames in a day int userID = 0; if (Session["LogedUserID"] != null) { userID = Convert.ToInt32(Session["LogedUserID"]); } int UserHour = objBookingDBEntities.RoomUsages.Count(model => model.UserID == userID && model.BookingDate.Year == objBookingViewModel.BookingDate.Year && model.BookingDate.Month == objBookingViewModel.BookingDate.Month && model.BookingDate.Day == objBookingViewModel.BookingDate.Day && model.IsActive == true); if (UserHour >= 2) { return(Json(new { message = "Users can only choose maximum 2 time frames in a day.", success = true }, JsonRequestBehavior.AllowGet));; } RoomUsage obj = new RoomUsage() { RoomId = objBookingViewModel.RoomId, BookingHoursID = objBookingViewModel.BookingHourID, BookingDate = objBookingViewModel.BookingDate, UserID = userID, NumberOfMembers = objBookingViewModel.NumberOfMembers, IsActive = true }; objBookingDBEntities.RoomUsages.Add(obj); objBookingDBEntities.SaveChanges(); return(Json(new { message = "Booking Successfully Created.", success = true }, JsonRequestBehavior.AllowGet)); }
public ActionResult Index(BookingViewModel objBookingViewModel) { try { // Uncomment below throw exception to test Singleton Logger for booking // throw new System.NullReferenceException("Booking is not valid."); //Users can only choose a maximum of 2 time frames in a day int userID = 0; if (Session["LogedUserID"] != null) { userID = Convert.ToInt32(Session["LogedUserID"]); } int UserHour = objBookingDBEntities.RoomUsages.Count(model => model.UserID == userID && model.BookingDate.Year == objBookingViewModel.BookingDate.Year && model.BookingDate.Month == objBookingViewModel.BookingDate.Month && model.BookingDate.Day == objBookingViewModel.BookingDate.Day && model.IsActive == true); if (UserHour >= 2) { return(Json(new { message = "Users can only choose maximum 2 time frames in a day.", success = true }, JsonRequestBehavior.AllowGet));; } //Users cannot book a room already booked int UserBooked = objBookingDBEntities.RoomUsages.Count(model => model.BookingDate.Year == objBookingViewModel.BookingDate.Year && model.BookingDate.Month == objBookingViewModel.BookingDate.Month && model.BookingDate.Day == objBookingViewModel.BookingDate.Day && model.BookingHoursID == objBookingViewModel.BookingHourID && model.RoomId == objBookingViewModel.RoomId && model.IsActive == true); if (UserBooked >= 1) { return(Json(new { message = "The room has already been booked.", success = true }, JsonRequestBehavior.AllowGet));; } RoomUsage obj = new RoomUsage() { RoomId = objBookingViewModel.RoomId, BookingHoursID = objBookingViewModel.BookingHourID, BookingDate = objBookingViewModel.BookingDate, UserID = userID, NumberOfMembers = objBookingViewModel.NumberOfMembers, IsActive = true }; objBookingDBEntities.RoomUsages.Add(obj); objBookingDBEntities.SaveChanges(); return(Json(new { message = "Booking Successfully Created.", success = true }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { MyLogger.Instance.TraceEvent(TraceEventType.Error, 0, System.DateTime.Now.ToString() + ": Booking fail with error: " + ex.Message); return(Json(new { message = "Booking not successful. Please try again.", success = true }, JsonRequestBehavior.AllowGet)); } }