/// <summary>
        /// 除了image以外的所有数据绑定
        /// </summary>
        /// <param name="sdr"></param>
        /// <param name="employee"></param>
        private static void GetEmployeeNotImageFieldFromParm(SqlDataReader sdr, Employee employee)
        {
            for (int i = 0; i < sdr.FieldCount; i++)
            {
                DateTime tryDateTimeParse;
                int      tryIntParse;
                bool     tryBoolParse;
                switch (sdr.GetName(i))
                {
                case _DBAccountID:
                    if (sdr[_DBAccountID] != null && int.TryParse(sdr[_DBAccountID].ToString(), out tryIntParse))
                    {
                        employee.Account                   = employee.Account ?? new Account();
                        employee.Account.Id                = (int)sdr[_DBAccountID];
                        employee.Account.Position          = new Position();
                        employee.Account.Position.Grade    = new PositionGrade();
                        employee.Account.Position.Grade.Id = (int)sdr[_DBPositionGradeID];
                    }
                    break;

                case _DBCompanyID:
                    if (sdr[_DBCompanyID] != null && int.TryParse(sdr[_DBCompanyID].ToString(), out tryIntParse))
                    {
                        employee.EmployeeDetails              = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.Work         = employee.EmployeeDetails.Work ?? new Work();
                        employee.EmployeeDetails.Work.Company =
                            employee.EmployeeDetails.Work.Company ?? new Department();
                        employee.EmployeeDetails.Work.Company.DepartmentID = (int)sdr[_DBCompanyID];
                    }
                    break;

                case _DBEmployeeType:
                    if (sdr[_DBEmployeeType] != null &&
                        int.TryParse(sdr[_DBEmployeeType].ToString(), out tryIntParse))
                    {
                        employee.EmployeeType = (EmployeeTypeEnum)sdr[_DBEmployeeType];
                    }
                    break;

                case _DBComeDate:
                    if (sdr[_DBComeDate] != null &&
                        DateTime.TryParse(sdr[_DBComeDate].ToString(), out tryDateTimeParse))
                    {
                        employee.EmployeeDetails               = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.Work          = employee.EmployeeDetails.Work ?? new Work();
                        employee.EmployeeDetails.Work.ComeDate = (DateTime)sdr[_DBComeDate];
                    }
                    break;

                case _DBLeaveDate:
                    if (sdr[_DBLeaveDate] != null &&
                        DateTime.TryParse(sdr[_DBLeaveDate].ToString(), out tryDateTimeParse))
                    {
                        employee.EmployeeDetails      = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.Work = employee.EmployeeDetails.Work ?? new Work();
                        employee.EmployeeDetails.Work.DimissionInfo = employee.EmployeeDetails.Work.DimissionInfo ??
                                                                      new DimissionInfo();
                        employee.EmployeeDetails.Work.DimissionInfo.DimissionDate = (DateTime)sdr[_DBLeaveDate];
                    }
                    break;

                case _DBBirthday:
                    if (sdr[_DBBirthday] != null &&
                        DateTime.TryParse(sdr[_DBBirthday].ToString(), out tryDateTimeParse))
                    {
                        employee.EmployeeDetails          = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.Birthday = (DateTime)sdr[_DBBirthday];
                    }
                    break;

                case _DBResidencePermit:
                    if (sdr[_DBResidencePermit] != null &&
                        DateTime.TryParse(sdr[_DBResidencePermit].ToString(), out tryDateTimeParse))
                    {
                        employee.EmployeeDetails = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.ResidencePermits = employee.EmployeeDetails.ResidencePermits ??
                                                                    new ResidencePermit();
                        employee.EmployeeDetails.ResidencePermits.DueDate = (DateTime)sdr[_DBResidencePermit];
                    }
                    break;

                case _DBEnglishName:
                    if (sdr[_DBEnglishName] != null)
                    {
                        employee.EmployeeDetails = employee.EmployeeDetails ?? new EmployeeDetails();

                        employee.EmployeeDetails.EnglishName = sdr[_DBEnglishName].ToString();
                    }
                    break;

                case _DBGender:
                    if (sdr[_DBGender] != null && int.TryParse(sdr[_DBGender].ToString(), out tryIntParse))
                    {
                        employee.EmployeeDetails        = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.Gender = Gender.GetById((int)sdr[_DBGender]);
                    }
                    break;

                case _DBPoliticalAffiliation:
                    if (sdr[_DBPoliticalAffiliation] != null &&
                        int.TryParse(sdr[_DBPoliticalAffiliation].ToString(), out tryIntParse))
                    {
                        employee.EmployeeDetails = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.PoliticalAffiliation =
                            PoliticalAffiliation.GetById((int)sdr[_DBPoliticalAffiliation]);
                    }
                    break;

                case _DBMaritalStatus:
                    if (sdr[_DBMaritalStatus] != null &&
                        int.TryParse(sdr[_DBMaritalStatus].ToString(), out tryIntParse))
                    {
                        employee.EmployeeDetails = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.MaritalStatus = MaritalStatus.GetById((int)sdr[_DBMaritalStatus]);
                    }
                    break;

                case _DBEducationalBackground:
                    if (sdr[_DBEducationalBackground] != null &&
                        int.TryParse(sdr[_DBEducationalBackground].ToString(), out tryIntParse))
                    {
                        employee.EmployeeDetails           = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.Education = employee.EmployeeDetails.Education ?? new Education();
                        employee.EmployeeDetails.Education.EducationalBackground =
                            EducationalBackground.GetById((int)sdr[_DBEducationalBackground]);
                    }
                    break;

                case _DBWorkType:
                    if (sdr[_DBWorkType] != null && int.TryParse(sdr[_DBWorkType].ToString(), out tryIntParse))
                    {
                        employee.EmployeeDetails               = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.Work          = employee.EmployeeDetails.Work ?? new Work();
                        employee.EmployeeDetails.Work.WorkType = WorkType.GetById((int)sdr[_DBWorkType]);
                    }
                    break;

                case _DBHasChild:
                    if (sdr[_DBHasChild] != null && bool.TryParse(sdr[_DBHasChild].ToString(), out tryBoolParse))
                    {
                        employee.EmployeeDetails                 = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.Family          = employee.EmployeeDetails.Family ?? new Family();
                        employee.EmployeeDetails.Family.HasChild = (bool)sdr[_DBHasChild];
                    }
                    break;

                case _DBCertificates:
                    if (sdr[_DBCertificates] != null)
                    {
                        employee.EmployeeDetails           = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.Education = employee.EmployeeDetails.Education ?? new Education();
                        employee.EmployeeDetails.Education.Certificates = sdr[_DBCertificates].ToString();
                    }
                    break;

                case _DBPRPArea:
                    if (sdr[_DBPRPArea] != null)
                    {
                        employee.EmployeeDetails = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.RegisteredPermanentResidence =
                            employee.EmployeeDetails.RegisteredPermanentResidence ??
                            new RegisteredPermanentResidence();
                        employee.EmployeeDetails.RegisteredPermanentResidence.PRPArea = sdr[_DBPRPArea].ToString();
                    }
                    break;

                case _DBProbationTime:
                    if (sdr[_DBProbationTime] != null &&
                        DateTime.TryParse(sdr[_DBProbationTime].ToString(), out tryDateTimeParse))
                    {
                        employee.EmployeeDetails = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.ProbationTime = (DateTime)sdr[_DBProbationTime];
                    }
                    break;

                case _DBProbationStartTime:
                    if (sdr[_DBProbationStartTime] != null &&
                        DateTime.TryParse(sdr[_DBProbationStartTime].ToString(), out tryDateTimeParse))
                    {
                        employee.EmployeeDetails = employee.EmployeeDetails ?? new EmployeeDetails();
                        employee.EmployeeDetails.ProbationStartTime = (DateTime)sdr[_DBProbationStartTime];
                    }
                    break;

                case _DBDoorCardNo:
                    if (sdr[_DBDoorCardNo] != null)
                    {
                        employee.EmployeeAttendance            = employee.EmployeeAttendance ?? new EmployeeAttendance();
                        employee.EmployeeAttendance.DoorCardNo = sdr[_DBDoorCardNo].ToString();
                    }
                    break;

                case _DBSocietyWorkAge:
                    if (sdr[_DBSocietyWorkAge] != null &&
                        int.TryParse(sdr[_DBSocietyWorkAge].ToString(), out tryIntParse))
                    {
                        employee.SocWorkAgeAndVacationList = employee.SocWorkAgeAndVacationList ??
                                                             new SocWorkAgeAndVacationList();
                        employee.SocWorkAgeAndVacationList.SocietyWorkAge = (int)sdr[_DBSocietyWorkAge];
                    }
                    break;

                case _DBCountryNationalityID:
                    if (sdr[_DBCountryNationalityID] != null &&
                        int.TryParse(sdr[_DBCountryNationalityID].ToString(), out tryIntParse))
                    {
                        employee.EmployeeDetails.CountryNationality =
                            new Nationality((int)sdr[_DBCountryNationalityID], "", "");
                    }
                    break;

                case _DBWorkPlace:
                    employee.EmployeeDetails.Work           = employee.EmployeeDetails.Work ?? new Work();
                    employee.EmployeeDetails.Work.WorkPlace = sdr[_DBWorkPlace].ToString();
                    break;

                case _DBPrincipalShipID:
                    if (sdr[_DBPrincipalShipID] != null &&
                        int.TryParse(sdr[_DBPrincipalShipID].ToString(), out tryIntParse))
                    {
                        employee.EmployeeDetails.Work = employee.EmployeeDetails.Work ?? new Work();
                        employee.EmployeeDetails.Work.Principalship = PrincipalShip.GetById((
                                                                                                int)
                                                                                            sdr[_DBPrincipalShipID]);
                    }
                    break;

                case _DBSalaryCardNo:
                    employee.EmployeeDetails.Work = employee.EmployeeDetails.Work ?? new Work();
                    employee.EmployeeDetails.Work.SalaryCardNo = sdr[_DBSalaryCardNo].ToString();
                    break;

                case _DBSalaryCardBank:
                    employee.EmployeeDetails.Work = employee.EmployeeDetails.Work ?? new Work();
                    employee.EmployeeDetails.Work.SalaryCardBank = sdr[_DBSalaryCardBank].ToString();
                    break;

                default:
                    break;
                }
            }
        }
Exemple #2
0
 private void CollectWorkInfo()
 {
     _TheEmployeeToComplete.EmployeeDetails.Work.WorkType       = WorkType.GetById(int.Parse(_ItsView.WorkType));
     _TheEmployeeToComplete.EmployeeDetails.Work.SalaryCardNo   = _ItsView.SalaryCardNo;
     _TheEmployeeToComplete.EmployeeDetails.Work.SalaryCardBank = _ItsView.SalaryCardBank;
 }