public void BindMonthAttendanceList(object source, EventArgs e)
 {
     if (CheckValid())
     {
         try
         {
             List <Employee> employeeMonthAttendanceList =
                 _IEmployeeAttendanceStatisticsFacade.GetMonthAttendanceStatisticsFacade(
                     _IMonthAttendanceView.EmployeeName,
                     _IMonthAttendanceView.SelectedDepartment, _IMonthAttendanceView.GradesId,
                     dtFromDate, dtToDate, _Operator, HrmisPowers.A507);
             //列表中没有查出当前员工的信息时,满足一下两个条件的任何一个,再次加载当前员工的信息
             //1.所选部门是当前员工的部门
             //2.所选部门包含当前员工的部门
             //如现实数据中王莎莉登录,无任何权限,只可看自己的信息
             if (_Operator.Name.Contains(_IMonthAttendanceView.EmployeeName) &&
                 !HrmisUtility.IsEmployeeListContainEmployee(employeeMonthAttendanceList, _Operator.Id))
             {
                 bool getnow = true;
                 if (_IMonthAttendanceView.SelectedDepartment != _Operator.Dept.Id)
                 {
                     Department selectedDept =
                         _IDepartmentBll.GetDepartmentById(_IMonthAttendanceView.SelectedDepartment, null);
                     if (!selectedDept.IsExistDept(_Operator.Dept.Id))
                     {
                         getnow = false;
                     }
                 }
                 if (_IMonthAttendanceView.GradesId != null && _Operator.GradesID != _IMonthAttendanceView.GradesId)
                 {
                     getnow = false;
                 }
                 if (getnow)
                 {
                     GetCurrEmployeeMonthAttendance(employeeMonthAttendanceList);
                 }
             }
             _IMonthAttendanceView.EmployeeMonthAttendanceList = employeeMonthAttendanceList;
             _IMonthAttendanceView.ScopeDateFrom = _IMonthAttendanceView.FromDate;
             _IMonthAttendanceView.ScopeDateTo   = _IMonthAttendanceView.ToDate;
             _IMonthAttendanceView.Message       =
                 "<span class='font14b'>共有 </span>"
                 + "<span class='fontred'>" + _IMonthAttendanceView.EmployeeMonthAttendanceList.Count + "</span>"
                 + "<span class='font14b'> 条统计记录</span>";
         }
         catch (ApplicationException ex)
         {
             _IMonthAttendanceView.Message = "<span class='fontred'>" + ex.Message + "</span>";
         }
     }
 }
        private void Search(NameValueCollection parameters)
        {
            List <ControlError>  errors            = new List <ControlError>();
            List <EmployeeModel> EmployeeModelList = new List <EmployeeModel>();
            string EmployeeName = parameters["EmployeeName"];
            int    employeeType = Convert.ToInt32(parameters["employeeType"]);
            int    positionID   = Convert.ToInt32(parameters["positionID"]);
            int    departmentID = Convert.ToInt32(parameters["departmentID"]);
            int?   gradesID     = Convert.ToInt32(parameters["gradesID"]);

            if (gradesID < 0)
            {
                gradesID = null;
            }
            int    EmployeeStatusId    = Convert.ToInt32(parameters["EmployeeStatusId"]);
            string recursionDepartment = parameters["recursionDepartment"];
            string ageFrom             = parameters["ageFrom"];
            string ageTo = parameters["ageTo"];

            try
            {
                ValidateAge(ageFrom, ageTo);
                EmployeeTypeEnum _employeeType =
                    EmployeeTypeUtility.GetEmployeeTypeByID(employeeType);
                List <Employee> _EmployeeList = _IEmployeeFacade.GetEmployeeBasicInfoByBasicConditionWithCompanyAge(
                    EmployeeName,
                    _employeeType, positionID, gradesID, departmentID, intAgeFrom, intAgeTo, recursionDepartment == "true",
                    EmployeeStatusId);
                _EmployeeList =
                    HrmisUtility.RemoteUnAuthEmployee(_EmployeeList, AuthType.HRMIS, _Operator, HrmisPowers.A401);
                List <Employee> employees = new List <Employee>();
                foreach (Employee emplyee in _EmployeeList)
                {
                    //根据所属公司id,得到所属公司名称
                    var temp = emplyee;
                    if (temp.EmployeeDetails == null || temp.EmployeeDetails.Work == null ||
                        temp.EmployeeDetails.Work.Company == null)
                    {
                    }
                    else
                    {
                        //todo noted by wsl transfer waiting for modify
                        temp.EmployeeDetails.Work.Company =
                            _IDepartmentBll.GetDepartmentById(
                                temp.EmployeeDetails.Work.Company.Id, new Account());
                    }
                    temp.EmployeeDetails              = temp.EmployeeDetails ?? new EmployeeDetails();
                    temp.EmployeeDetails.Work         = temp.EmployeeDetails.Work ?? new Work();
                    temp.EmployeeDetails.Work.Company = temp.EmployeeDetails.Work.Company ??
                                                        new Department();
                    employees.Add(temp);
                }
                //列表中没有查出当前员工的信息时,满足一下两个条件的任何一个,再次加载当前员工的信息
                //1.所选部门是当前员工的部门
                //2.所选部门包含当前员工的部门
                //如现实数据中王莎莉登录,无任何权限,只可看自己的信息
                if (_Operator.Name.Contains(EmployeeName) &&
                    !HrmisUtility.IsEmployeeListContainEmployee(employees, _Operator.Id))
                {
                    if (departmentID == -1)
                    {
                        GetCurrEmployee(employees, employeeType, positionID, gradesID, departmentID);
                    }
                    else if (departmentID != _Operator.Dept.Id)
                    {
                        Department selectedDept =
                            _IDepartmentBll.GetDepartmentById(departmentID, null);
                        if (selectedDept.IsExistDept(_Operator.Dept.Id))
                        {
                            GetCurrEmployee(employees, employeeType, positionID, gradesID, departmentID);
                        }
                    }
                    else
                    {
                        GetCurrEmployee(employees, employeeType, positionID, gradesID, departmentID);
                    }
                }
                EmployeeModelList = employees.Select(x => new EmployeeModel
                {
                    PKID         = x.Account.Id,
                    EmployeeName = "<div class='info' pkid='" + SecurityUtil.DECEncrypt(x.Account.Id.ToString()) + "'>" + x.Account.Name + "</div>",
                    EmployeeType = EmployeeTypeUtility.EmployeeTypeDisplay(x.EmployeeType),
                    Department   = x.Account.Dept.Name,
                    Company      = x.EmployeeDetails.Work.Company.Name,
                    Position     = x.Account.Position.Name,
                    WorkTime     =
                        x.EmployeeDetails.Work.ComeDate.ToString("yyyy-MM-dd")
                }).ToList();
            }
            catch (Exception ex)
            {
                errors.Add(new ControlError("lblMessage", ex.Message));
            }
            _ResponseString = PageUtility.FomartSearchString(EmployeeModelList, errors);
        }