示例#1
0
 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"));
     }
 }
示例#2
0
 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"));
     }
 }
示例#3
0
 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"));
     }
 }