Ejemplo n.º 1
0
        public Task <EmployeeStatistics> GetStatistics()
        {
            EmployeeStatistics stats = new EmployeeStatistics();
            var employees            = _empRepository.GetEmployeesForStats();

            stats.CurrentEmployeeCount  = employees.Where(x => x.IsDeleted != true).Count();
            stats.DeletedEmployeeCount  = employees.Where(x => x.IsDeleted == true).Count();
            stats.ModifiedEmployeeCount = employees.Where(x => x.IsDeleted != true && x.ModifiedDate != null).Count();
            stats.TotalEmployeeCount    = employees.Count();

            var AddedGroup = employees.GroupBy(x => x.YearOfJoining);

            foreach (var group in AddedGroup)
            {
                stats.YearList.Add(group.Key);
                stats.EmployeeAdded.Add(group.Count());
                stats.EmployeeDeleted.Add(group.Where(x => x.IsDeleted == true && x.ModifiedDate.Year == group.Key).Count());
            }

            var deletedGroup = employees.Where(x => x.IsDeleted == true).GroupBy(x => x.ModifiedDate.Year);

            foreach (var group in deletedGroup)
            {
                if (!stats.YearList.Any(x => x == group.Key))
                {
                    stats.YearList.Add(group.Key);
                    stats.EmployeeDeleted.Add(group.Where(x => x.IsDeleted == true && x.ModifiedDate.Year == group.Key).Count());
                }
            }
            return(Task.FromResult <EmployeeStatistics>(stats));
        }
Ejemplo n.º 2
0
        public void StatisticsEmployee(object source, EventArgs e)
        {
            if (CheckValid())
            {
                try
                {
                    //在此收集数据源以防底层查询很多次
                    List <Employee> employeesource =
                        _IEmployeeHistoryFacade.GetEmployeeOnDutyByDepartmentAndDateTime(
                            _ICommonStatisticsView.IStatisticsConditionView.DepartmentID,
                            Convert.ToDateTime(_ICommonStatisticsView.IStatisticsConditionView.StatisticsTime),
                            true, _Operator, HrmisPowers.A405, null);
                    EmployeeStatistics EmployeeStatistics =
                        _IEmployeeStatisticsFacade.BindEmployeeStatistics(DateTime.Now,
                                                                          _ICommonStatisticsView.
                                                                          IStatisticsConditionView.
                                                                          DepartmentID, _Operator, employeesource);
                    _ICommonStatisticsView.IAgePieChartView.EmployeeStatistics      = EmployeeStatistics;
                    _ICommonStatisticsView.IGenderPieChartView.EmployeeStatistics   = EmployeeStatistics;
                    _ICommonStatisticsView.IEduBgPieChartView.EmployeeStatistics    = EmployeeStatistics;
                    _ICommonStatisticsView.IWorkTypePieChartView.EmployeeStatistics = EmployeeStatistics;
                    _ICommonStatisticsView.IWorkAgePieChartView.EmployeeStatistics  = EmployeeStatistics;

                    ComeAndLeaveTablePresenter ComeAndLeaveTablePresenter =
                        new ComeAndLeaveTablePresenter(_ICommonStatisticsView.IComeAndLeaveTableView,
                                                       _ICommonStatisticsView.IStatisticsConditionView, _Operator);
                    ComeAndLeaveTablePresenter.DrawChart();

                    _ICommonStatisticsView.IComeAndLeaveBarChartView.EmployeeComeAndLeaveList =
                        _ICommonStatisticsView.IComeAndLeaveTableView.EmployeeComeAndLeaveList;
                    _ICommonStatisticsView.ILeaveRateLineChartView.EmployeeComeAndLeaveList =
                        _ICommonStatisticsView.IComeAndLeaveTableView.EmployeeComeAndLeaveList;

                    PositionGradeTowerTablePresenter PositionGradeTowerTablePresenter =
                        new PositionGradeTowerTablePresenter(_ICommonStatisticsView.IPositionGradeTowerTableView,
                                                             _ICommonStatisticsView.IStatisticsConditionView, _Operator);
                    PositionGradeTowerTablePresenter.DrawChart(employeesource);

                    OtherStatisticsDataPresenter OtherStatisticsDataPresenter =
                        new OtherStatisticsDataPresenter(_ICommonStatisticsView.IOtherStatisticsDataView,
                                                         _ICommonStatisticsView.IStatisticsConditionView, _Operator);
                    OtherStatisticsDataPresenter.BindData(employeesource, _ICommonStatisticsView.IComeAndLeaveTableView.EmployeeComeAndLeaveList[11]);
                }
                catch (ApplicationException)
                {
                    //_IMonthAttendanceView.Message = "<span class='fontred'>" + ex.Message + "</span>";
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public EmployeeStatistics BindEmployeeStatistics()
        {
            _Employeesource = _Employeesource ??
                              _GetEmployeeHistory.GetEmployeeOnDutyByDepartmentAndDateTime(_DepartmentID, _Date, true,
                                                                                           _AccountOperator,
                                                                                           HrmisPowers.A405, null);
            List <Employee>    employeeList       = Employee.CopyEmployeeList(_Employeesource);
            EmployeeStatistics employeeStatistics = new EmployeeStatistics(employeeList);

            employeeStatistics.GenderStatistics();
            employeeStatistics.WorkTypeStatistics();
            employeeStatistics.EducationalBackgroundStatistics();
            employeeStatistics.AgeStatistics();
            employeeStatistics.WorkAgeStatistics();
            return(employeeStatistics);
        }
Ejemplo n.º 4
0
        public void CountFemaleManagers()
        {
            //Arrange
            var empManager = new EmployeeManager();

            empManager.AddEmployee(new Employee {
                Name = "Leen", Gender = Gender.Female, Position = Position.Manager
            });
            empManager.AddEmployee(new Employee {
                Name = "Mike", Gender = Gender.Male, Position = Position.Administrator
            });

            //Act
            var stats = new EmployeeStatistics(empManager);

            //Assert
            Assert.That(stats.CountFemaleManagers(), Is.EqualTo(1));
            Assert.That(stats.CountMaleAdmins(), Is.EqualTo(1));
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            //example bad
            var employeeManagerBad = new EmployeeManager();

            employeeManagerBad.AddEmployee(new Employee {
                Name = "Leen", Gender = Gender.Female, Position = Position.Manager
            });
            employeeManagerBad.AddEmployee(new Employee {
                Name = "Mike", Gender = Gender.Male, Position = Position.Administrator
            });

            var employeeStatisticBad = new EmployeeStatistics(employeeManagerBad);
            var femaleManagers1      = employeeStatisticBad.CountFemaleManagers();

            Console.WriteLine($"Number of female managers in our company is: {femaleManagers1}");
            Console.ReadLine();

            //example good
            var employeeManagerGood = new EmployeeManagerGood();

            employeeManagerGood.AddEmployee(new Employee {
                Name = "Leen", Gender = Gender.Female, Position = Position.Manager
            });
            employeeManagerGood.AddEmployee(new Employee {
                Name = "Mike", Gender = Gender.Male, Position = Position.Administrator
            });

            var femaleExecuteives = employeeManagerGood.GetEmployeesByGenderAndPosition(Gender.Female, Position.Executive).Count();

            Console.WriteLine($"Number of female executeives in our company is: {femaleExecuteives}");

            var empStatistic    = new EmployeeStatisticsGood(employeeManagerGood);
            var femaleManagers2 = empStatistic.CountFemaleManagers();

            Console.WriteLine($"Number of female managers in our company is: {femaleManagers2}");
            Console.ReadLine();
        }
Ejemplo n.º 6
0
        public Task <EmployeeStatistics> GetStatistics()
        {
            EmployeeStatistics stats = new EmployeeStatistics();
            var employees            = _empRepository.GetEmployeesForStats();

            stats.CurrentEmployeeCount  = employees.Where(x => x.IsDeleted != true).Count();
            stats.DeletedEmployeeCount  = employees.Where(x => x.IsDeleted == true).Count();
            stats.ModifiedEmployeeCount = employees.Where(x => x.IsDeleted != true && x.ModifiedDate != null).Count();
            stats.TotalEmployeeCount    = employees.Count();

            var yearOfJoiningList = employees.Select(x => x.YearOfJoining);
            var yearOfQuitingList = employees.Where(x => x.YearOfQuiting != 0).Select(x => (x.YearOfQuiting));
            var yearList          = yearOfJoiningList.Union(yearOfQuitingList).OrderBy(x => x);

            foreach (var year in yearList)
            {
                stats.YearList.Add(year);
                stats.EmployeeAdded.Add(employees.Where(x => x.YearOfJoining == year).Count());
                stats.EmployeeDeleted.Add(employees.Where(x => x.IsDeleted == true && x.YearOfQuiting == year).Count());
            }

            return(Task.FromResult <EmployeeStatistics>(stats));
        }