public ActionResult Approve(int?id) { try { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Booking booking = db.Bookings.Find(id); if (booking == null) { return(HttpNotFound()); } AspNetUser user = Helpers.User.GetUser(User.Identity.Name); int? userRoleOrder = Helpers.User.GetUserRoleOrder(User.Identity.Name); if (userRoleOrder.HasValue && (userRoleOrder == -1 || (userRoleOrder > booking.AspNetUser.AspNetRoles.FirstOrDefault().Order&& booking.AspNetUser.AspNetRoles.FirstOrDefault().Order != -1))) { booking.BookingStatusID = (int)Helpers.BookingStatus.Booked; db.Entry(booking).State = EntityState.Modified; db.SaveChanges(); Helpers.BookingChanges.HandleChange(booking.BookingID, user.Id, "Changed status to: Booked"); return(RedirectToAction("Index")); } else { throw new Exception("Not allowed."); } } catch (Exception ex) { ViewBag.Log = LogHandler.Helpers.LogHandler.HandleLog(LogHandler.Helpers.LogType.Critical, "Bookings/Approve", ex.Message, (ex.InnerException != null ? ex.InnerException.Message : "")); return(View("Error")); } }
public ActionResult Edit([Bind(Include = "RoomID,BuildingID,Floor,Capacity,RoomCode,DefaultBookingStatusID,MaximumBookingHours,Name,Description,ImgUrl")] Room room, string AllowedGroups, string Assets) { try { if (ModelState.IsValid) { db.Entry(room).State = EntityState.Modified; db.SaveChanges(); foreach (RoomRole rr in db.RoomRoles.Where(rro => rro.RoomID == room.RoomID).ToList()) { db.RoomRoles.Remove(rr); db.SaveChanges(); } foreach (RoomAsset ra in db.RoomAssets.Where(rao => rao.RoomID == room.RoomID).ToList()) { db.RoomAssets.Remove(ra); db.SaveChanges(); } var allGroups = System.Web.Helpers.Json.Decode <List <string> >(Server.UrlDecode(AllowedGroups)); foreach (string gr in allGroups) { RoomRole rr = new RoomRole() { AspNetRoleID = gr, RoomID = room.RoomID }; db.RoomRoles.Add(rr); db.SaveChanges(); } var asst = System.Web.Helpers.Json.Decode <List <Dictionary <string, string> > >(Server.UrlDecode(Assets)); foreach (Dictionary <string, string> asset in asst) { RoomAsset ra = new RoomAsset() { AssetID = Convert.ToInt32(asset["id"]), Description = asset["description"], RoomID = room.RoomID }; db.RoomAssets.Add(ra); db.SaveChanges(); } return(RedirectToAction("Index")); } ViewBag.DefaultBookingStatusID = new SelectList(db.BookingStatuses, "BookingStatusID", "Name", room.DefaultBookingStatusID); ViewBag.BuildingID = new SelectList(db.Buildings, "BuildingID", "Name", room.BuildingID); ViewBag.AspNetRoles = db.AspNetRoles.ToList(); ViewBag.Assets = db.Assets.ToList(); return(View(room)); } catch (Exception ex) { ViewBag.Log = LogHandler.Helpers.LogHandler.HandleLog(LogHandler.Helpers.LogType.Warning, "Rooms/EditPOST", ex.Message, (ex.InnerException != null ? ex.InnerException.Message : ""), Request.Params); return(View("Error")); } }
public ActionResult Edit([Bind(Include = "AssetID,Name,Description,ShowAs")] Asset asset) { try { if (ModelState.IsValid) { db.Entry(asset).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(asset)); } catch (Exception ex) { ViewBag.Log = LogHandler.Helpers.LogHandler.HandleLog(LogHandler.Helpers.LogType.Warning, "Assets/EditPOST", ex.Message, (ex.InnerException != null ? ex.InnerException.Message : ""), Request.Params); return(View("Error")); } }
//Updgrade or downgrade user public ActionResult UpdateRole(string id, string RoleID) { try { AspNetUser user = Helpers.User.GetUser(User.Identity.Name); //get current user AspNetUser userToUpdate = db.AspNetUsers.Find(id); //get the user to update AspNetRole aspRole = db.AspNetRoles.Find(RoleID); if (user == null || userToUpdate == null || aspRole == null) { throw new Exception("Not found."); } var userRoleLevel = Helpers.User.GetUserRoleOrder(User.Identity.Name); //get current user's role level if (userRoleLevel == -1) //if is admin { foreach (AspNetRole role in userToUpdate.AspNetRoles.ToList()) { userToUpdate.AspNetRoles.Remove(role); db.Entry(userToUpdate).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } userToUpdate.AspNetRoles.Add(aspRole); db.Entry(userToUpdate).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } else { if (aspRole.Order < userRoleLevel && user.BuildingID == userToUpdate.BuildingID) //if logged user has a higher role level { foreach (AspNetRole role in userToUpdate.AspNetRoles.ToList()) { userToUpdate.AspNetRoles.Remove(role); db.Entry(userToUpdate).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } userToUpdate.AspNetRoles.Add(aspRole); db.Entry(userToUpdate).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } else { throw new Exception("Not allowed!"); } } return(RedirectToAction("Index")); } catch (Exception ex) { ViewBag.Log = LogHandler.Helpers.LogHandler.HandleLog(LogHandler.Helpers.LogType.Warning, "Users/UpdateRole", ex.Message, (ex.InnerException != null ? ex.InnerException.Message : ""), Request.Params); return(View("Error")); } }
public ActionResult Edit([Bind(Include = "BuildingID,BuildingCode,Name,Country,Address,Description,ImageUrl,OpenHour,CloseHour")] Building building) { try { if (ModelState.IsValid) { db.Entry(building).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(building)); } catch (Exception ex) { ViewBag.Log = LogHandler.Helpers.LogHandler.HandleLog(LogHandler.Helpers.LogType.Warning, "Buildings/EditPOST", ex.Message, (ex.InnerException != null ? ex.InnerException.Message : ""), Request.Params); return(View("Error")); } }