Example #1
0
        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();
        }
Example #2
0
        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();
            }
        }
Example #3
0
        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();
        }