protected void btnDeleteSelected_Click(object sender, EventArgs e) { // 在操作之前进行权限检查 // 从每个选中的行中获取ID(在Grid1中定义的DataKeyNames) int roleID = GetSelectedDataKeyID(Grid1); List <int> userIDs = GetSelectedDataKeyIDs(Grid2); PermissionRole role = DB.PermissionRoles.Where(r => r.ID == roleID) .FirstOrDefault(); //role.Users.Where(u => userIDs.Contains(u.ID)).ToList().ForEach(u => role.Users.Remove(u)); foreach (int userID in userIDs) { UserPermissionRole serPermissionRole = DB.UserPermissionRoles.Where(u => u.UserID == userID && u.PermissionRoleID == roleID).FirstOrDefault(); if (serPermissionRole != null) { DB.UserPermissionRoles.Remove(serPermissionRole); } } DB.SaveChanges(); // 清空当前选中的项 Grid2.SelectedRowIndexArray = null; // 重新绑定表格 BindGrid2(); }
protected void Grid2_RowCommand(object sender, GridCommandEventArgs e) { int roleID = GetSelectedDataKeyID(Grid1); object[] values = Grid2.DataKeys[e.RowIndex]; int userID = Convert.ToInt32(values[0]); if (e.CommandName == "Delete") { // 在操作之前进行权限检查 PermissionRole role = DB.PermissionRoles.Where(r => r.ID == roleID) .FirstOrDefault(); UserPermissionRole tobeRemoved = DB.UserPermissionRoles.Where(u => u.UserID == userID && u.PermissionRoleID == roleID).FirstOrDefault(); if (role != null && tobeRemoved != null) { DB.UserPermissionRoles.Remove(tobeRemoved); DB.SaveChanges(); } BindGrid2(); } }
private void SaveItem() { int id = GetQueryIntValue("id"); List <EmployeeAdjustItem> adjustItems = new List <EmployeeAdjustItem>(); int companyID = UserInfo.Current.CompanyID; Infobasis.Data.DataEntity.User item = null; if (id == 0) { item = new Infobasis.Data.DataEntity.User(); if (string.IsNullOrEmpty(tbxUserName.Text)) { item.Name = tbxTel.Text.Trim(); } if (string.IsNullOrEmpty(tbxPassWord.Text)) { item.Password = PasswordUtil.CreateDbPassword(tbxPassWord.Text.Trim()); } item.CreateDatetime = DateTime.Now; item.HireStatus = 0; adjustItems.Add(EmployeeAdjustItem.Create); } else { item = DB.Users.Include("UserPermissionRoles").Where(u => u.ID == id).FirstOrDefault(); item.LastUpdateByID = UserInfo.Current.ID; item.LastUpdateByName = UserInfo.Current.ChineseName; item.LastUpdateDatetime = DateTime.Now; if (item.EmploymentType != (ddlEmploymentType.SelectedValue != null ? Change.ToInt(ddlEmploymentType.SelectedValue) : 1)) { adjustItems.Add(EmployeeAdjustItem.EmploymentType); } if (Change.ValueIsChanged(item.ReportsTo, Change.ToInt(tbxReportToID.Text))) { adjustItems.Add(EmployeeAdjustItem.ReportsTo); } if (Change.ValueIsChanged(item.JobID, Change.ToInt(ddbTitles.Value))) { adjustItems.Add(EmployeeAdjustItem.Job); } if (Change.ValueIsChanged(item.DepartmentID, Change.ToInt(ddbDept.Value))) { adjustItems.Add(EmployeeAdjustItem.Department); } if (item.OnBoardDate != Change.ToDateTime(tbxOnBoardDate.Text)) { adjustItems.Add(EmployeeAdjustItem.OnBoard); } } item.ChineseName = tbxName.Text.Trim(); item.EmployeeSpellCode = ChinesePinyin.GetFirstPinyin(tbxName.Text.Trim()); item.EnglishName = ChinesePinyin.GetPinyin(tbxName.Text.Trim()); item.EmployeeCode = tbxEmployeeNum.Text.Trim(); item.Email = tbxEmail.Text.Trim(); item.Remark = tbxRemark.Text.Trim(); item.Enabled = true; item.CompanyID = companyID; item.UserType = UserType.Employee; item.Gender = ddlGender.SelectedValue; item.DateOfBirth = Change.ToDateTime(dpBirthDay.Text); item.EmployeeCode = tbxEmployeeNum.Text.Trim(); item.EmploymentType = ddlEmploymentType.SelectedValue != null?Change.ToInt(ddlEmploymentType.SelectedValue) : 1; item.MaritalStatus = ddlMarriage.SelectedValue; item.Ethnic = ddlNation.SelectedValue; item.OnBoardDate = Change.ToDateTime(tbxOnBoardDate.Text); if (tbxBecomeRegularDate.Text != null) { item.BecomeRegularDate = Change.ToDateTime(tbxBecomeRegularDate.Text); } if (tbxReportToID.Text != null && Change.ToInt(tbxReportToID.Text) > 0) { item.ReportsTo = Change.ToInt(tbxReportToID.Text); } item.IDType = ddlCertificates.SelectedValue; item.IDNumber = tbxIDCardEdit.Text; item.Education = ddlEducation.Text; item.NativePlace = ddlNativePlace.SelectedValue; item.MailAddress = tbxNativePlace.Text; item.MobileNumber = tbxTel.Text.Trim(); // 添加角色 int[] newEntityIDs = ddbRoles.Values != null?ddbRoles.Values.Select(r => Convert.ToInt32(r)).ToArray() : new int[1]; if (item.UserPermissionRoles == null) { item.UserPermissionRoles = new List <UserPermissionRole>(); } ICollection <UserPermissionRole> existEntities = DB.UserPermissionRoles.Where(up => up.UserID == item.ID).ToList(); int[] tobeAdded = newEntityIDs.Except(existEntities.Select(x => x.PermissionRoleID)).ToArray(); int[] tobeRemoved = existEntities.Select(x => x.PermissionRoleID).Except(newEntityIDs).ToArray(); foreach (int pid in tobeAdded) { UserPermissionRole newEntity = new UserPermissionRole() { CompanyID = companyID, UserID = item.ID, PermissionRoleID = pid, CreateDatetime = DateTime.Now }; //moduleRoleRepository.Insert(newEntity, out msg, false); item.UserPermissionRoles.Add(newEntity); } foreach (int pid in tobeRemoved) { var removeEntity = DB.UserPermissionRoles.Find(pid); item.UserPermissionRoles.Remove(removeEntity); } if (tobeAdded.Length > 0 || tobeRemoved.Length > 0) { adjustItems.Add(EmployeeAdjustItem.UserPermissionRole); } // 添加所有部门 if (ddbDept.Value != null && Change.ToInt(ddbDept.Value) > 0) { item.DepartmentID = Change.ToInt(ddbDept.Value); } // 添加所有职称 if (ddbTitles.Values != null && Change.ToInt(ddbTitles.Value) > 0) { item.JobID = Change.ToInt(ddbTitles.Value); } if (id == 0) { DB.Users.Add(item); } string adjustItemNames = ""; if (adjustItems.Count == 0) { adjustItems.Add(EmployeeAdjustItem.Others); } foreach (var adjustItem in adjustItems) { adjustItemNames += ", " + EnumHelper.GetDescription(adjustItem); } EmployeeAdjust eeAdjust = new EmployeeAdjust() { UserID = item.ID, AdjustItemName = adjustItemNames, AdjustDate = DateTime.Now, AllChangeData = item.ToString(), isAdjusted = true, CreateByID = UserInfo.Current.ID, CreateByName = UserInfo.Current.ChineseName, CreateDatetime = DateTime.Now }; DB.EmployeeAdjusts.Add(eeAdjust); SaveChanges(); }