//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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
            }
        }