public ActionResult EditBooking(int id)
        {
            int    bookingId = id;
            string email     = User.Identity.Name;

            //Declare MyBookings VM
            EditBookingsVM model;

            using (Db db = new Db())
            {
                //Get user
                BookingDTO dto = db.Bookings.FirstOrDefault(x => x.Id.Equals(bookingId));

                if (dto == null)
                {
                    TempData["Failure"] = "The booking does not exist";
                    return(View("MyBookings"));
                }

                model = new EditBookingsVM();
                if (dto.CreatedBy == email)
                {
                    model.Id              = dto.Id;
                    model.DeviceSerialNo  = dto.DeviceSerialNo;
                    model.BookingPurpose  = dto.BookingPurpose;
                    model.ServerInstalled = dto.ServerInstalled;
                    model.IPAddress       = dto.IPAddress;
                    model.Username        = dto.Username;
                    model.Password        = "";
                    model.ConfirmPassword = "";
                }
                else
                {
                    TempData["Failure"] = "Invalid Panel Booking Edit Request";
                    return(RedirectToAction("my-bookings"));
                }


                return(View("EditBooking", model));
            }
        }
        public ActionResult EditBooking(EditBookingsVM model)
        {
            if (!ModelState.IsValid)
            {
                return(View("EditBooking", model));
            }

            //Check if password is not empty
            if (!string.IsNullOrEmpty(model.Password))
            {
                //Check if password and confirm password matches
                if (!model.Password.Equals(model.ConfirmPassword))
                {
                    TempData["Failure"] = "Passwords do not match";
                    return(View("EditBooking", model));
                }
            }

            string email = User.Identity.Name;

            using (Db db = new Db())
            {
                if (db.Bookings.Any(x => x.Id.Equals(model.Id)))
                {
                    BookingDTO dto = db.Bookings.Find(model.Id);
                    dto.DeviceSerialNo  = model.DeviceSerialNo;
                    dto.BookingPurpose  = model.BookingPurpose;
                    dto.ServerInstalled = model.ServerInstalled;
                    dto.ModifiedBy      = email;
                    if (!string.IsNullOrEmpty(model.IPAddress))
                    {
                        dto.IPAddress = model.IPAddress;
                    }
                    if (!string.IsNullOrEmpty(model.Username))
                    {
                        dto.Username = model.Username;
                    }

                    if (!string.IsNullOrEmpty(model.Password))
                    {
                        if (model.Password.Equals(model.ConfirmPassword))
                        {
                            dto.Password = model.Password;
                        }
                    }

                    //if (!string.IsNullOrEmpty(model.Password))
                    //{
                    //    CustomPasswordHasher hash = new CustomPasswordHasher();
                    //    string hashedPassword = hash.HashPassword(model.Password);

                    //    if (model.Password.Equals(model.ConfirmPassword))
                    //    {
                    //        dto.Password = hashedPassword;
                    //    }
                    //}

                    db.SaveChanges();
                }
                else
                {
                    TempData["Failure"] = "Invalid Edit Panel Booking Request";
                    return(View("EditBooking", model));
                }
            }
            TempData["Success"] = "You have successfully edited your booking";
            return(View("EditBooking"));
        }