public ActionResult Index(string Id, string msg = "none") { ViewBag.Current = "Users"; if (Id == null) { return(RedirectToAction("BadRequestError", "ErrorController")); } ApplicationUser user = db.Users.Find(Id); if (user == null) { return(RedirectToAction("HttpNotFoundError", "ErrorController")); } if (!msg.Equals("none")) { ViewBag.Msg = msg; } else { ViewBag.Msg = null; } //Role ID: Session["User_Id"] = user.Id; string userRoleName = db.Users.Find(Id).RoleName; string UserRoleId = db.Roles.Where(a => a.Name.Equals(userRoleName)).FirstOrDefault().Id; List <Permission> RolePermissions = db.PermissionRoles.Where(a => a.RoleId.Equals(UserRoleId)).Include(a => a.Permission).Select(a => a.Permission).ToList(); List <PermissionsUser> UserPermissionsList = new List <PermissionsUser>(); PermissionsUser puser = null; foreach (Permission p in RolePermissions) { puser = new PermissionsUser() { Permission = p, Is_Active = db.PermissionUsers.Where(a => a.UserId.Equals(user.Id)).Any(a => a.PermissionId == p.Id) ? db.PermissionUsers.Where(a => a.UserId.Equals(user.Id) && a.PermissionId == p.Id).FirstOrDefault().Is_Active : db.PermissionRoles.Where(a => a.RoleId.Equals(UserRoleId) && a.PermissionId == p.Id).FirstOrDefault().Is_Active , CreatedAt = db.PermissionUsers.Where(a => a.UserId.Equals(user.Id)).Any(a => a.PermissionId == p.Id) ? db.PermissionUsers.Where(a => a.UserId.Equals(user.Id) && a.PermissionId == p.Id).FirstOrDefault().CreatedAt : "" }; UserPermissionsList.Add(puser); } return(View(UserPermissionsList.OrderByDescending(a => a.CreatedAt).ToList())); }
public ActionResult Index(List <string> Permissions) { if (Permissions == null) { return(RedirectToAction("Index", new { controller = "PermissionsUsers", id = Session["User_Id"], msg = "ActiveError" })); } string NotificationTime = string.Empty; string NotMessage = string.Empty; foreach (string s in Permissions) { NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss"); string UserId = Session["User_Id"].ToString(); //role id: string RoleName = db.Users.Find(UserId).RoleName; string RoleId = db.Roles.Where(a => a.Name.Equals(RoleName)).FirstOrDefault().Id; int Permission_Id = Convert.ToInt32(s); if (db.PermissionUsers.Where(a => a.UserId.Equals(UserId)).Any(a => a.PermissionId == Permission_Id)) { int PUserId = db.PermissionUsers.Where(a => a.UserId.Equals(UserId) && a.PermissionId == Permission_Id).FirstOrDefault().Id; PermissionsUser PUser = db.PermissionUsers.Find(PUserId); db.PermissionUsers.Remove(PUser); NotMessage = "تم تفعيل الصلاحية: " + db.Permissions.Find(Permission_Id).Name; } else { if (db.PermissionRoles.Where(a => a.RoleId.Equals(RoleId) && a.PermissionId == Permission_Id).FirstOrDefault().Is_Active == false) { PermissionsUser PUser = new PermissionsUser() { CreatedAt = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss"), PermissionId = Permission_Id, UserId = Session["User_Id"].ToString(), Is_Active = true }; db.PermissionUsers.Add(PUser); NotMessage = "تم تفعيل الصلاحية: " + db.Permissions.Find(Permission_Id).Name; } else { PermissionsUser PUser = new PermissionsUser() { CreatedAt = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss"), PermissionId = Permission_Id, UserId = Session["User_Id"].ToString(), Is_Active = false }; NotMessage = "تم إلغاء الصلاحية: " + db.Permissions.Find(Permission_Id).Name; db.PermissionUsers.Add(PUser); } } string UserNotId = User.Identity.GetUserId(); Notification notification = null; notification = new Notification() { CreatedAt = NotificationTime, Active = false, UserId = UserId, Message = NotMessage, NotificationOwnerId = UserNotId }; db.Notifications.Add(notification); } db.SaveChanges(); return(RedirectToAction("Index", new { controller = "PermissionsUsers", id = Session["User_Id"], msg = "ActiveSuccess" })); }