protected bool AddUserRole(MasterUser objMasterUser, string role) { MasterRole objMasterRole = new UsersRoleDAL().GetRoles().Where(x => x.RoleID == Convert.ToInt32(role)).FirstOrDefault(); if (objMasterRole != null) { //back-end level;membership checking if (!Roles.IsUserInRole(objMasterUser.UserName, objMasterRole.RoleName)) { string[] getRoles = Roles.GetRolesForUser(objMasterUser.UserName); if (getRoles.Count() > 0) { Roles.RemoveUserFromRoles(objMasterUser.UserName, getRoles); } Roles.AddUserToRole(objMasterUser.UserName, objMasterRole.RoleName); } //local level checking JuncUserRole objUserRole = new JuncUserRole(); objUserRole.RoleID = Convert.ToInt32(role); objUserRole.UserID = objMasterUser.UserID; objUserRole.Status = "A"; if (new UsersRoleDAL().InsertUserRole(objUserRole)) { return(true); } else { return(false); } } else { return(false); } }
public static string OnSubmit(string roleid, string dlbox, string desc, string stats) { string json; var ReturnObj = new { status = "", result = "" }; try { MasterRole roleObj = new MasterRole(); roleObj.RoleID = Convert.ToInt32(roleid); roleObj.RoleName = new UsersRoleDAL().GetRoles().Where(x => x.RoleID == Convert.ToInt32(roleid)).Select(y => y.RoleName).FirstOrDefault(); roleObj.Description = desc.Trim(); roleObj.RoleStatus = new Helper().GetItemStatusEnumValueByName(stats.Trim()); List <string> RolesUname = Roles.GetUsersInRole(roleObj.RoleName).ToList(); string[] usersSelected = dlbox.Split(','); List <string> SelectedUname = new List <string>(); if (usersSelected.Count() == 0 || dlbox == "null") { SelectedUname = new List <string>(); } else { for (int u = 0; u < usersSelected.Count(); u++) { SelectedUname.Add(new UsersDAL().GetUserDataByID(Convert.ToInt32(usersSelected[u])).UserName); } } if (SelectedUname.Count() > RolesUname.Count()) { List <string> OnlyInSelectedList = SelectedUname.Except(RolesUname).ToList(); foreach (string username in OnlyInSelectedList) { string[] getRoles = Roles.GetRolesForUser(username); if (getRoles.Count() > 0) { Roles.RemoveUserFromRoles(username, getRoles); if (!new UsersRoleDAL().DeleteUserRole(username, getRoles)) { throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again."); } } Roles.AddUserToRole(username, roleObj.RoleName); //add to local db JuncUserRole userrole = new JuncUserRole(); userrole.RoleID = Convert.ToInt32(roleid); userrole.UserID = DAL.UsersDAL.StaticUserId(0, username).UserID; userrole.Status = new Helper().GetItemStatusEnumValueByName(stats.Trim()); if (!new UsersRoleDAL().InsertUserRole(userrole)) { throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again."); } } //Update MasterRole if (new UsersRoleDAL().UpdateMasterRole(roleObj)) { ReturnObj = new { status = "Success", result = "User successfully added to roles." }; } else { throw new Exception("Fail to authenticated selected users-list & role. Please re-enter your values and try again."); } } else { if (SelectedUname.Count() == RolesUname.Count()) { //double check List <string> OnlyInSelectedList = SelectedUname.Except(RolesUname).ToList(); foreach (string username in OnlyInSelectedList) { string[] getRoles = Roles.GetRolesForUser(username); if (getRoles.Count() > 0) { Roles.RemoveUserFromRoles(username, getRoles); if (!new UsersRoleDAL().DeleteUserRole(username, getRoles)) { throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again."); } } Roles.AddUserToRole(username, roleObj.RoleName); //add to local db JuncUserRole userrole = new JuncUserRole(); userrole.RoleID = Convert.ToInt32(roleid); userrole.UserID = DAL.UsersDAL.StaticUserId(0, username).UserID; userrole.Status = new Helper().GetItemStatusEnumValueByName(stats.Trim()); if (!new UsersRoleDAL().InsertUserRole(userrole)) { throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again."); } } List <string> UnusedUserList = RolesUname.Except(SelectedUname).ToList(); foreach (string username in UnusedUserList) { string[] getRoles = Roles.GetRolesForUser(username); if (getRoles.Count() > 0) { Roles.RemoveUserFromRoles(username, getRoles); if (!new UsersRoleDAL().DeleteUserRole(username, getRoles)) { throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again."); } } } } else { List <string> UnusedUserList = RolesUname.Except(SelectedUname).ToList(); foreach (string username in UnusedUserList) { string[] getRoles = Roles.GetRolesForUser(username); if (getRoles.Count() > 0) { Roles.RemoveUserFromRoles(username, getRoles); if (!new UsersRoleDAL().DeleteUserRole(username, getRoles)) { throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again."); } } } } //Update MasterRole if (new UsersRoleDAL().UpdateMasterRole(roleObj)) { ReturnObj = new { status = "Success", result = "User successfully added to roles." }; } else { throw new Exception("Fail to authenticated selected users-list & role. Please re-enter your values and try again."); } } } catch (Exception ex) { ReturnObj = new { status = "Fail", result = "An error occurred. Error Message: " + ex.Message }; } return(json = JsonConvert.SerializeObject(ReturnObj, Formatting.Indented)); }