Пример #1
0
        private void InitChildren()
        {
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.PKRoleID, FKRoleID.ToString(), SearchComparator.Equal, SearchType.SearchString));
            employeeRole = CommonDAL <Role> .GetSingleObject(conditions);
        }
Пример #2
0
        /// <summary>
        /// If the employeeID or leaveTypeName doesn't exist, return 0.
        /// </summary>
        /// <param name="employeeID"></param>
        /// <param name="leaveTypeName"></param>
        /// <returns></returns>
        public static double GetUsedHours(string employeeID, string leaveTypeName)
        {
            double hours = 0;

            if (!string.IsNullOrEmpty(employeeID) && !string.IsNullOrEmpty(leaveTypeName))
            {
                Employee  employee  = EmployeeBLL.GetEmployeeByID(employeeID);
                LeaveType leaveType = GetLeaveTypeByName(leaveTypeName);

                if (null != employee && null != leaveType)
                {
                    List <SearchCondition> conditions = new List <SearchCondition>();
                    conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKEmployeeID, employee.PKEmployeeID.ToString(), SearchComparator.Equal, SearchType.SearchString));
                    conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKLeaveTypeID, leaveType.PKLeaveTypeID.ToString(), SearchComparator.Equal, SearchType.SearchString));
                    conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Year, DateTime.Now.Year.ToString(), SearchComparator.Equal, SearchType.SearchNotString));
                    EmployeeLeaveSummary leaveSummary = CommonDAL <EmployeeLeaveSummary> .GetSingleObject(conditions);

                    if (null != leaveSummary)
                    {
                        hours = leaveSummary.UsedHours;
                    }
                }
            }

            return(hours);
        }
Пример #3
0
        protected override void Update()
        {
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition("PKEmployeeRoleRLID", PKEmployeeRoleRLID.ToString(), SearchComparator.Equal, SearchType.SearchString));
            CommonDAL <EmployeeRoleRL> .Update(this, conditions);
        }
Пример #4
0
        private void InitChildren()
        {
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition("FKEmployeeID", PKEmployeeID.ToString(), SearchComparator.Equal, SearchType.SearchString));
            conditions.Add(SearchCondition.CreateSearchCondition("IsDeleted", Convert.ToString(0), SearchComparator.Equal, SearchType.SearchNotString));
            employeeRoleList = CommonDAL <EmployeeRoleRL> .GetObjects(conditions);

            foreach (EmployeeRoleRL item in employeeRoleList)
            {
                if (item.EmployeeRole.Name.Equals("Admin"))
                {
                    isAdmin = true;
                }

                if (item.EmployeeRole.Name.Equals("Manager"))
                {
                    isManager = true;
                }
            }

            conditions.Clear();
            conditions.Add(SearchCondition.CreateSearchCondition("PKEmployeeID", FKReportManagerID.ToString(), SearchComparator.Equal, SearchType.SearchString));
            manager = CommonDAL <Employee> .GetSingleObject(conditions);
        }
Пример #5
0
        protected override void Update()
        {
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.PKTDInfoID, PKTDInfoID.ToString(), SearchComparator.Equal, SearchType.SearchString));
            CommonDAL <TimeDurationInfo> .Update(this, conditions);
        }
Пример #6
0
        public static List <Employee> GetAllEmployees()
        {
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.IsActive, Convert.ToString(1), SearchComparator.Equal, SearchType.SearchNotString));
            return(CommonDAL <Employee> .GetObjects(conditions, GlobalParams.Email, OrderType.ASC));
        }
Пример #7
0
        public static bool CheckSupervisorValidation(string employeeID, string supervisorID)
        {
            bool result = !string.IsNullOrEmpty(employeeID) && !employeeID.Equals(supervisorID);

            if (result)
            {
                List <SearchCondition> conditions = new List <SearchCondition>();
                conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.PKEmployeeID, employeeID, SearchComparator.Equal, SearchType.SearchString));
                Employee employee = CommonDAL <Employee> .GetSingleObject(conditions);

                result = null != employee;
                if (result)
                {
                    List <string> pkIDList = new List <string>();
                    GetAllLeaders(employee, pkIDList, null);
                    result = null != pkIDList;
                    if (result)
                    {
                        foreach (string pkID in pkIDList)
                        {
                            if (pkID.Equals(supervisorID))
                            {
                                result = false;
                                break;
                            }
                        }
                    }
                }
            }

            return(result);
        }
Пример #8
0
        public void TestLeaveTypeTimeStamp()
        {
            // Insert a leave type
            DateTime  startTime = Convert.ToDateTime("01/01/2000");
            DateTime  endTime   = Convert.ToDateTime("01/01/3000");
            LeaveType leaveType = LeaveType.CreateLeaveType(Guid.NewGuid().ToString(), 100, startTime, endTime);

            leaveType.PKLeaveTypeID = Guid.NewGuid();
            leaveType.SetKnowledgeDate(DateTime.Now);
            leaveType.Save();
            Guid guid = leaveType.PKLeaveTypeID;

            // Get the leave type inserted just now
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition("PKLeaveTypeID", guid.ToString(), SearchComparator.Equal, SearchType.SearchString));
            LeaveType testLeaveType1 = CommonDAL <LeaveType> .GetSingleObject(conditions);

            LeaveType testLeaveType2 = CommonDAL <LeaveType> .GetSingleObject(conditions);

            // Update the leave type inserted just now
            testLeaveType1.Name = "UpdatedLeaveType";
            testLeaveType1.Save();
            testLeaveType2.Name = "SecUpdatedLeaveType";
            testLeaveType2.Save();

            // Get the leave type updated just now
            LeaveType updatedLeaveType = CommonDAL <LeaveType> .GetSingleObject(conditions);

            Assert.AreEqual(testLeaveType1.Name, updatedLeaveType.Name);
            Assert.AreNotEqual(testLeaveType2.Name, updatedLeaveType.Name);

            // Delete the leave type
            leaveType.Delete();
        }
Пример #9
0
        public static List <Employee> GetManagers()
        {
            List <Employee> managers = null;
            Role            role     = Role.GetRoleByName(RoleRank.Manager.ToString());

            if (null != role)
            {
                List <SearchCondition> conditions = new List <SearchCondition>();
                conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKRoleID, role.PKRoleID.ToString(), SearchComparator.Equal, SearchType.SearchString));
                conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.IsDeleted, Convert.ToString(0), SearchComparator.Equal, SearchType.SearchNotString));
                List <EmployeeRoleRL> employeeRoleRLs = CommonDAL <EmployeeRoleRL> .GetObjects(conditions);

                if (null != employeeRoleRLs)
                {
                    managers = new List <Employee>();
                    foreach (EmployeeRoleRL item in employeeRoleRLs)
                    {
                        if (item.IsDeleted == false)                        // remove the supervisor who is not actived
                        {
                            managers.Add(EmployeeBLL.GetEmployeeByID(item.FKEmployeeID.ToString()));
                        }
                    }
                }
            }

            return(managers);
        }
Пример #10
0
        public static LeaveInfo ApplyLeave(string employeeID, string reason, string leaveType, string description, List <TimeDurationInfo> durationList)
        {
            LeaveInfo leaveInfo = null;

            if (!string.IsNullOrEmpty(employeeID) && !string.IsNullOrEmpty(reason) && !string.IsNullOrEmpty(leaveType) && null != durationList)
            {
                Employee employee = EmployeeBLL.GetEmployeeByID(employeeID);
                if (null != employee)
                {
                    if (employee.Manager == null)
                    {
                        throw new Exception("You didn't set supervisor to approve your leave application.");
                    }

                    List <SearchCondition> conditions = new List <SearchCondition>();
                    conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Name, leaveType, SearchComparator.Equal, SearchType.SearchString));
                    LeaveType lType = CommonDAL <LeaveType> .GetSingleObject(conditions);

                    leaveInfo =
                        LeaveInfo.CreateLeaveInfo(employee.PKEmployeeID, employee.FKReportManagerID, lType.PKLeaveTypeID,
                                                  LeaveStatus.Applying, reason, description, durationList);
                    leaveInfo.Save();

                    conditions.Clear();
                    conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.PKLeaveTypeID, leaveInfo.FKLeaveTypeID.ToString(), SearchComparator.Equal, SearchType.SearchString));
                    leaveInfo.Type = CommonDAL <LeaveType> .GetSingleObject(conditions);
                }
            }

            return(leaveInfo);
        }
Пример #11
0
        public static Employee AddEmployee(string email, string firstName, string middleName, string lastName, Sex gender, float serviceYear, DateTime dateOfHire, string supervisorEmail, string costCenterCode, int employeeNum, string legalName)
        {
            Employee employee = null;

            if (!string.IsNullOrEmpty(email) && !string.IsNullOrEmpty(firstName) && !string.IsNullOrEmpty(lastName))
            {
                employee              = Employee.CreateEmployee(email, CryptographyStuff.AES_EncryptString(GlobalParams.DefaultPwd), gender, firstName, dateOfHire, lastName);
                employee.MiddleName   = middleName;
                employee.Gender       = gender;
                employee.ServiceYears = serviceYear;
                employee.IsActive     = true;
                employee.EmployeeNum  = employeeNum;
                employee.LegalName    = legalName;

                Role role = Role.GetRoleByName(RoleRank.Employee.ToString());
                List <EmployeeRoleRL> employeeRoleList = new List <EmployeeRoleRL>();
                employeeRoleList.Add(EmployeeRoleRL.CreateEmployeeRoleRL(Guid.Empty, role.PKRoleID));
                employee.SetRoleList(employeeRoleList);

                if (!string.IsNullOrEmpty(supervisorEmail))
                {
                    List <SearchCondition> conditions = new List <SearchCondition>();
                    conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Email, supervisorEmail, SearchComparator.Equal, SearchType.SearchString));
                    Employee manager = CommonDAL <Employee> .GetSingleObject(conditions);

                    employee.FKReportManagerID = manager.PKEmployeeID;
                }

                employee.CostCenter = costCenterCode;

                employee.Save();
            }

            return(employee);
        }
Пример #12
0
        public void TestDeleteEmployee()
        {
            // Insert a role
            Role role = Role.CreateRole(Guid.NewGuid().ToString());

            role.Save();

            // Insert an employee.
            Employee employee = Employee.CreateEmployee(Guid.NewGuid().ToString(), "123", Sex.Male, "Hui", DateTime.Now, "Ji");

            employee.IsActive     = true;
            employee.ServiceYears = 10;
            List <EmployeeRoleRL> employeeRoleList = new List <EmployeeRoleRL>();

            employeeRoleList.Add(EmployeeRoleRL.CreateEmployeeRoleRL(Guid.Empty, role.PKRoleID));
            employee.SetRoleList(employeeRoleList);
            employee.Save();

            // Delete the employee
            employee.Delete();

            // Get the employee who is deleted
            Guid guid = employee.PKEmployeeID;
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition("PKEmployeeID", guid.ToString(), SearchComparator.Equal, SearchType.SearchString));
            Employee testEmployee = CommonDAL <Employee> .GetSingleObject(conditions);

            Assert.IsNull(testEmployee);
            role.Delete();
        }
Пример #13
0
        public void TestRoleTimeStamp()
        {
            // Insert a role
            Role role = Role.CreateRole(Guid.NewGuid().ToString());

            role.PKRoleID      = new Guid();
            role.KnowledgeDate = DateTime.Now;
            role.Save();
            Guid roleGuid = role.PKRoleID;

            // Get the inserted role
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition("PKRoleID", roleGuid.ToString(), SearchComparator.Equal, SearchType.SearchString));
            Role testRole1 = CommonDAL <Role> .GetSingleObject(conditions);

            Role testRole2 = CommonDAL <Role> .GetSingleObject(conditions);

            // Update the inserted role
            testRole1.Name = Guid.NewGuid().ToString().Substring(0, 5);
            testRole1.Save();
            testRole2.Name = Guid.NewGuid().ToString().Substring(0, 5);
            testRole2.Save();

            // Get the updated rolw
            Role updatedRole = CommonDAL <Role> .GetSingleObject(conditions);

            Assert.AreEqual(testRole1.Name, updatedRole.Name);
            Assert.AreNotEqual(testRole2.Name, updatedRole.Name);

            // Delete the role
            role.Delete();
        }
Пример #14
0
        protected override void Update()
        {
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.PKELSID, PKELSID.ToString(), SearchComparator.Equal, SearchType.SearchString));
            CommonDAL <EmployeeLeaveSummary> .Update(this, conditions);
        }
Пример #15
0
        public override void Delete()
        {
            using (TransactionScope ts = new TransactionScope())
            {
                // If the leave record is accepted we should update the leave summary when we want remove the leave record.
                // This case only happened in Unit Test as delete method is not allowed to invoke in real business logic.
                if (this.Status == LeaveStatus.Accepted)
                {
                    int    year;
                    double usedHours = GetDurationHours(timeDurationList, out year);

                    if (usedHours != 0 && year != 0)
                    {
                        List <SearchCondition> conditions = new List <SearchCondition>();
                        conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKEmployeeID, FKSubmitEmployeeID.ToString(), SearchComparator.Equal, SearchType.SearchString));
                        conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKLeaveTypeID, FKLeaveTypeID.ToString(), SearchComparator.Equal, SearchType.SearchString));
                        conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Year, year.ToString(), SearchComparator.Equal, SearchType.SearchNotString));
                        EmployeeLeaveSummary leaveSummary = CommonDAL <EmployeeLeaveSummary> .GetSingleObject(conditions);

                        leaveSummary.UsedHours -= usedHours;
                        leaveSummary.Save();
                    }
                }

                foreach (TimeDurationInfo item in timeDurationList)
                {
                    item.Delete();
                }

                CommonDAL <LeaveInfo> .Delete(this);

                ts.Complete();
            }
        }
Пример #16
0
        protected override void Update()
        {
            using (TransactionScope ts = new TransactionScope())
            {
                List <SearchCondition> conditions = new List <SearchCondition>();
                conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.PKLeaveInfoID, PKLeaveInfoID.ToString(), SearchComparator.Equal, SearchType.SearchString));
                CommonDAL <LeaveInfo> .Update(this, conditions);

                foreach (TimeDurationInfo item in timeDurationList)
                {
                    if (item.IsNew)
                    {
                        item.FKLeaveInfoID = this.PKLeaveInfoID;
                    }
                    item.Save();
                }

                //#region For transact unit test
                //throw new Exception();
                //#endregion

                if (this.PreStatus != LeaveStatus.Accepted && this.Status == LeaveStatus.Accepted ||
                    this.status == LeaveStatus.Rejected && this.PreStatus == LeaveStatus.Accepted)
                {
                    int    year;
                    double usedHours = GetDurationHours(timeDurationList, out year);

                    if (usedHours != 0 && year != 0)
                    {
                        conditions.Clear();
                        conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKEmployeeID, FKSubmitEmployeeID.ToString(), SearchComparator.Equal, SearchType.SearchString));
                        conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKLeaveTypeID, FKLeaveTypeID.ToString(), SearchComparator.Equal, SearchType.SearchString));
                        conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Year, year.ToString(), SearchComparator.Equal, SearchType.SearchNotString));
                        EmployeeLeaveSummary leaveSummary = CommonDAL <EmployeeLeaveSummary> .GetSingleObject(conditions);

                        if (null == leaveSummary)
                        {
                            leaveSummary = EmployeeLeaveSummary.CreateEmployeeLeaveSummary(FKSubmitEmployeeID, FKLeaveTypeID, year);
                        }
                        if (this.status == LeaveStatus.Rejected)
                        {
                            usedHours = -usedHours;
                        }

                        leaveSummary.UsedHours += usedHours;

                        if (leaveSummary.UsedHours < 0)
                        {
                            leaveSummary.UsedHours = 0;                             // used hours cannot be a negative number
                        }
                        leaveSummary.Save();
                    }
                }

                ts.Complete();
            }
        }
Пример #17
0
        public static Employee GetEmployeeByEmail(string email)
        {
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Email, email, SearchComparator.Equal, SearchType.SearchString));

            Employee employee = CommonDAL <Employee> .GetSingleObject(conditions);

            return(employee);
        }
Пример #18
0
        public void TestDeleteEmployeeLeaveSummary()
        {
            // Insert an employee role
            Role employeeRole = Role.CreateRole(Guid.NewGuid().ToString());

            employeeRole.Save();

            // Insert an employee.
            Employee employee = Employee.CreateEmployee(Guid.NewGuid().ToString(), "123", Sex.Male, "Tian", DateTime.Now, "Liu");

            employee.IsActive     = true;
            employee.ServiceYears = 10;
            List <EmployeeRoleRL> employeeRoleList = new List <EmployeeRoleRL>();

            employeeRoleList.Add(EmployeeRoleRL.CreateEmployeeRoleRL(Guid.Empty, employeeRole.PKRoleID));
            employee.SetRoleList(employeeRoleList);
            employee.Save();
            Guid employeeGuid = employee.PKEmployeeID;

            // Insert a leave type
            DateTime  leaveTypeStartTime = Convert.ToDateTime("01/01/2000");
            DateTime  leaveTypeEndTime   = Convert.ToDateTime("01/01/3000");
            LeaveType leaveType          = LeaveType.CreateLeaveType(Guid.NewGuid().ToString(), 100, leaveTypeStartTime, leaveTypeEndTime);

            leaveType.PKLeaveTypeID = Guid.NewGuid();
            leaveType.SetKnowledgeDate(DateTime.Now);
            leaveType.Save();
            Guid leaveTypeGuid = leaveType.PKLeaveTypeID;

            // Insert an employee leave summary
            EmployeeLeaveSummary employeeLeaveSummary = EmployeeLeaveSummary.CreateEmployeeLeaveSummary(employeeGuid, leaveTypeGuid, DateTime.Now.Year);

            employeeLeaveSummary.PKELSID   = Guid.NewGuid();
            employeeLeaveSummary.UsedHours = 10;
            employeeLeaveSummary.Save();
            Guid summaryGuid = employeeLeaveSummary.PKELSID;

            // Delete the employee leave summary
            employeeLeaveSummary.Delete();

            // Get the inserted employee leave summary
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition("PKELSID", summaryGuid.ToString(), SearchComparator.Equal, SearchType.SearchString));
            EmployeeLeaveSummary testSummary = CommonDAL <EmployeeLeaveSummary> .GetSingleObject(conditions);

            Assert.IsNull(testSummary);

            // Delete inserted items
            leaveType.Delete();
            employee.Delete();
            employeeRole.Delete();
        }
Пример #19
0
        public static List <LeaveInfo> GetMyTeamLeaves(string employeeID, DateTime start, DateTime end, bool showAllRecords)
        {
            List <LeaveInfo> leaveList = null;

            if (!string.IsNullOrEmpty(employeeID))
            {
                leaveList = new List <LeaveInfo>();
                List <SearchCondition> conditions = new List <SearchCondition>();
                conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKReportManagerID, employeeID, SearchComparator.Equal, SearchType.SearchString));
                conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.IsActive, Convert.ToString(1), SearchComparator.Equal, SearchType.SearchNotString));

                List <Employee> employees = CommonDAL <Employee> .GetObjects(conditions);

                if (null != employees)
                {
                    foreach (Employee employee in employees)
                    {
                        conditions.Clear();
                        conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKSubmitEmployeeID, employee.PKEmployeeID.ToString(), SearchComparator.Equal, SearchType.SearchString));

                        if (start != DateTime.MinValue)
                        {
                            conditions.Add(SearchCondition.CreateSearchCondition("FirstStartTime", start.ToString(), SearchComparator.Greater, SearchType.SearchString));
                        }

                        if (end != DateTime.MaxValue)
                        {
                            conditions.Add(SearchCondition.CreateSearchCondition("LastEndTime", end.ToString(), SearchComparator.Less, SearchType.SearchString));
                        }

                        if (!showAllRecords)                         // !showAllRecords means only show applying records
                        {
                            conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Status, ((int)LeaveStatus.Applying).ToString(), SearchComparator.Equal, SearchType.SearchNotString));
                        }

                        List <LeaveInfo> leaves = CommonDAL <LeaveInfo> .GetObjects(conditions, GlobalParams.Status + "," + GlobalParams.FirstStartTime, OrderType.ASC);

                        if (null != leaves)
                        {
                            foreach (LeaveInfo leave in leaves)
                            {
                                leaveList.Add(leave);
                            }
                        }
                    }
                }
            }

            leaveList.Sort(new LeaveInfoComparision());

            return(leaveList);
        }
Пример #20
0
        public static Role GetRoleByName(string rank)
        {
            Role role = null;

            if (!string.IsNullOrEmpty(rank))
            {
                List <SearchCondition> conditions = new List <SearchCondition>();
                conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Name, rank, SearchComparator.Equal, SearchType.SearchString));
                role = CommonDAL <Role> .GetSingleObject(conditions);
            }

            return(role);
        }
Пример #21
0
        public static LeaveType GetLeaveTypeByName(string leaveTypeName)
        {
            LeaveType leaveType = null;

            if (!string.IsNullOrEmpty(leaveTypeName))
            {
                List <SearchCondition> conditions = new List <SearchCondition>();
                conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Name, leaveTypeName, SearchComparator.Equal, SearchType.SearchString));
                leaveType = CommonDAL <LeaveType> .GetSingleObject(conditions);
            }

            return(leaveType);
        }
Пример #22
0
        public static LeaveInfo GetLeaveInfoByID(string leaveID)
        {
            LeaveInfo leave = null;

            if (!string.IsNullOrEmpty(leaveID))
            {
                List <SearchCondition> conditions = new List <SearchCondition>();
                conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.PKLeaveInfoID, leaveID, SearchComparator.Equal, SearchType.SearchString));
                leave = CommonDAL <LeaveInfo> .GetSingleObject(conditions);
            }

            return(leave);
        }
Пример #23
0
        public static Employee GetEmployeeByID(string employeeID)
        {
            Employee employee = null;

            if (!string.IsNullOrEmpty(employeeID))
            {
                List <SearchCondition> conditions = new List <SearchCondition>();
                conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.PKEmployeeID, employeeID, SearchComparator.Equal, SearchType.SearchString));
                employee = CommonDAL <Employee> .GetSingleObject(conditions);
            }

            return(employee);
        }
Пример #24
0
        public void TestUpdateEmployeeRoleRL()
        {
            // Insert a role
            Role role = Role.CreateRole(Guid.NewGuid().ToString());

            role.Save();
            Guid roleGuid = role.PKRoleID;

            // Insert an employee.
            Employee employee = Employee.CreateEmployee(Guid.NewGuid().ToString(), "123", Sex.Male, "TIAN", DateTime.Now, "LIU");

            employee.IsActive     = true;
            employee.ServiceYears = 10;
            EmployeeRoleRL        employeeRoleRL   = EmployeeRoleRL.CreateEmployeeRoleRL(Guid.Empty, roleGuid);
            List <EmployeeRoleRL> employeeRoleList = new List <EmployeeRoleRL>();

            employeeRoleList.Add(employeeRoleRL);
            employee.SetRoleList(employeeRoleList);
            employee.Save();
            Guid employeeGuid       = employee.PKEmployeeID;
            Guid employeeRoleRLGuid = employeeRoleRL.PKEmployeeRoleRLID;

            // Get the inserted employee role relation
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition("PKEmployeeRoleRLID", employeeRoleRLGuid.ToString(),
                                                                 SearchComparator.Equal, SearchType.SearchString));
            EmployeeRoleRL testEemployeeRoleRL = CommonDAL <EmployeeRoleRL> .GetSingleObject(conditions);

            // Insert another role
            Role updatedRole = Role.CreateRole("UpdatedRole");

            updatedRole.Save();
            Guid updatedRoleGuid = updatedRole.PKRoleID;

            // Update the inserted emmployee role relation
            testEemployeeRoleRL.FKRoleID = updatedRoleGuid;
            testEemployeeRoleRL.Save();

            // Get the employee role relation updated just now
            EmployeeRoleRL updatedEmployeeRoleRL = CommonDAL <EmployeeRoleRL> .GetSingleObject(conditions);

            Assert.AreEqual(testEemployeeRoleRL.FKRoleID, updatedEmployeeRoleRL.FKRoleID);

            // Delete inseted items
            employeeRoleRL.Delete();
            employee.Delete();
            role.Delete();
            updatedRole.Delete();
        }
Пример #25
0
        public static void UpdateEmployee(string employeeID, string email, string firstName, string middleName, string lastName, Sex gender, float serviceYear, DateTime dateOfHire, string supervisorEmail, string password, string phone, string mobile, bool isAdmin, bool isActive, bool isManager, string costCenterCode, int employeeNum, string legalName)
        {
            if (!string.IsNullOrEmpty(employeeID) && !string.IsNullOrEmpty(email) && !string.IsNullOrEmpty(firstName) && !string.IsNullOrEmpty(lastName))
            {
                Employee employee = EmployeeBLL.GetEmployeeByID(employeeID);

                if (null != employee)
                {
                    if (!string.IsNullOrEmpty(employee.Email) &&
                        !string.IsNullOrEmpty(supervisorEmail) &&
                        employee.Email.Equals(supervisorEmail))
                    {
                        throw new Exception(GlobalParams.SelectSupervisorError);
                    }

                    employee.Email        = email;
                    employee.FirstName    = firstName;
                    employee.MiddleName   = middleName;
                    employee.LastName     = lastName;
                    employee.Gender       = gender;
                    employee.ServiceYears = serviceYear;
                    employee.HiredDate    = dateOfHire;
                    employee.Password     = password;
                    employee.Phone        = phone;
                    employee.Mobile       = mobile;
                    employee.IsActive     = isActive;
                    employee.SetPrivilege(isAdmin, RoleRank.Admin);
                    employee.SetPrivilege(isManager, RoleRank.Manager);
                    employee.CostCenter  = costCenterCode;
                    employee.EmployeeNum = employeeNum;
                    employee.LegalName   = legalName;

                    if (!string.IsNullOrEmpty(supervisorEmail))
                    {
                        List <SearchCondition> conditions = new List <SearchCondition>();
                        conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Email, supervisorEmail, SearchComparator.Equal, SearchType.SearchString));
                        Employee manager = CommonDAL <Employee> .GetSingleObject(conditions);

                        employee.FKReportManagerID = manager.PKEmployeeID;
                    }
                    else
                    {
                        employee.FKReportManagerID = Guid.Empty;
                    }

                    employee.Save();
                }
            }
        }
Пример #26
0
        public static bool RecallLeave(string leaveID)
        {
            bool result = false;

            LeaveInfo leave = null;

            try
            {
                if (!string.IsNullOrEmpty(leaveID))
                {
                    List <SearchCondition> conditions = new List <SearchCondition>();
                    conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.PKLeaveInfoID, leaveID, SearchComparator.Equal, SearchType.SearchString));
                    leave = CommonDAL <LeaveInfo> .GetSingleObject(conditions);
                }

                if (leave == null)
                {
                    throw new DataException("Record not found in DB");
                }
                else if (leave.Status != LeaveStatus.Applying)
                {
                    throw new DataException(string.Format("Record has been locked since it's {0} already.", leave.Status.ToString()));
                }

                // delete FK time duration first
                List <SearchCondition> conditionsTimeDuration = new List <SearchCondition>();
                conditionsTimeDuration.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKLeaveInfoID, leaveID, SearchComparator.Equal, SearchType.SearchString));

                List <TimeDurationInfo> timeDurations = CommonDAL <TimeDurationInfo> .GetObjects(conditionsTimeDuration);

                for (int i = timeDurations.Count - 1; i >= 0; i--)
                {
                    CommonDAL <TimeDurationInfo> .Delete(timeDurations[i]);
                }

                // delete leave info
                CommonDAL <LeaveInfo> .Delete(leave);

                result = true;
            }
            catch (Exception ex)
            {
                result = false;
                throw new Exception(ex.Message);
            }

            return(result);
        }
Пример #27
0
        private static void TestMultiThreadApproveLeave()
        {
            Employee employee = PrepareData();

            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition("FKSubmitEmployeeID", employee.PKEmployeeID.ToString(), SearchComparator.Equal, SearchType.SearchString));
            conditions.Add(SearchCondition.CreateSearchCondition("Status", "1", SearchComparator.Equal, SearchType.SearchNotString));
            List <LeaveInfo> leaves = CommonDAL <LeaveInfo> .GetObjects(conditions);

            foreach (LeaveInfo item in leaves)
            {
                Thread t = new Thread(new ParameterizedThreadStart(ApplyLeave));
                t.Start(item);
            }
        }
Пример #28
0
        public void TestUpdateEmployeeTransact()
        {
            // Insert a role
            Role role = Role.CreateRole(Guid.NewGuid().ToString());

            role.Save();

            // Insert an employee.
            Employee employee = Employee.CreateEmployee(Guid.NewGuid().ToString(), "123", Sex.Male, "Hui", DateTime.Now, "Ji");

            employee.IsActive     = true;
            employee.Password     = "******";
            employee.ServiceYears = 10;
            List <EmployeeRoleRL> employeeRoleList = new List <EmployeeRoleRL>();

            employeeRoleList.Add(EmployeeRoleRL.CreateEmployeeRoleRL(Guid.Empty, role.PKRoleID));
            employee.SetRoleList(employeeRoleList);
            employee.Save();
            Guid guid = employee.PKEmployeeID;

            // Get the employee who is inserted just now.
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition("PKEmployeeID", guid.ToString(), SearchComparator.Equal, SearchType.SearchString));
            Employee testEmployee = CommonDAL <Employee> .GetSingleObject(conditions);

            // Update the employee.
            testEmployee.Email = "BrandonBrandon";
            try
            {
                testEmployee.Save();
            }
            catch
            {
                Console.WriteLine("Throw exception for transact unit test");
            }


            // Get the employee who is updated just now.
            Employee updatedEmployee = CommonDAL <Employee> .GetSingleObject(conditions);

            Assert.AreNotEqual(testEmployee.Email, updatedEmployee.Email);

            employee.Delete();
            role.Delete();
        }
Пример #29
0
        private static Employee PrepareData()
        {
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition("Email", "*****@*****.**", SearchComparator.Equal, SearchType.SearchString));
            Employee employee = CommonDAL <Employee> .GetSingleObject(conditions);

            List <TimeDurationInfo> list = new List <TimeDurationInfo>();

            list.Add(TimeDurationInfo.CreateTimeDurationInfo(DateTime.Now.AddDays(-1), DateTime.Now));

            for (int i = 0; i < 150; i++)
            {
                LeaveBLL.ApplyLeave(employee.PKEmployeeID.ToString(), "test multi thread", "Annual", "test multi thread", list);
            }

            return(employee);
        }
Пример #30
0
        private static void GetAllLeaders(Employee employee, List <string> pkIDList, List <Employee> teamMembers)
        {
            List <Employee>        leaders    = new List <Employee>();
            List <SearchCondition> conditions = new List <SearchCondition>();

            conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.Name, "Manager", SearchComparator.Equal, SearchType.SearchString));
            Role managerRole = CommonDAL <Role> .GetSingleObject(conditions);           // manager role

            conditions.Clear();
            conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.FKReportManagerID, employee.PKEmployeeID.ToString(), SearchComparator.Equal, SearchType.SearchString));
            conditions.Add(SearchCondition.CreateSearchCondition(GlobalParams.IsActive, true.ToString(), SearchComparator.Equal, SearchType.SearchString));
            List <Employee> members = CommonDAL <Employee> .GetObjects(conditions);          // members for current manager

            foreach (Employee member in members)
            {
                if (teamMembers != null)
                {
                    teamMembers.Add(member);                     // every one is employee.
                }
                foreach (EmployeeRoleRL memberRole in member.ActiveEmployeeRoleList)
                {
                    if (memberRole.FKRoleID.ToString() == managerRole.PKRoleID.ToString())
                    {
                        leaders.Add(member);
                        if (null != pkIDList)
                        {
                            pkIDList.Add(member.PKEmployeeID.ToString());
                        }
                    }
                }
            }

            employee.Leaders = leaders;

            if (leaders == null || leaders.Count == 0)
            {
                return;
            }

            foreach (Employee leader in leaders)
            {
                GetAllLeaders(leader, pkIDList, teamMembers);
            }
        }