Example #1
0
        public EmployeeStatisticsModel Statistic(string owner)
        {
            EmployeeStatisticsModel result = new EmployeeStatisticsModel();

            result.EmployeeCountInProjects = new List <EmployeeCountInProjectModel>();
            List <Employee> employees = _context.Employee.Where(e => e.Owner == owner).ToList();

            result.TotalManpower = 0;
            result.ManpowerUsing = 0;
            foreach (var item in employees)
            {
                result.TotalManpower += item.Manpower;
                if (item.Active == true)
                {
                    result.ManpowerUsing += item.Manpower;
                }
            }

            List <Project> projects = _context.Project.Include(x => x.EmployeeInProject).Where(p => p.Email == owner).ToList();
            var            empTbls  = new Dictionary <int, int>();

            foreach (var project in projects)
            {
                foreach (var item in project.EmployeeInProject)
                {
                    if (item.Active)
                    {
                        int oldValue = 0;
                        try
                        {
                            empTbls.TryGetValue(item.EmployeeId, out oldValue);
                        }
                        catch
                        {
                            oldValue = 0;
                        }
                        if (oldValue == 0)
                        {
                            empTbls.Add(item.EmployeeId, 1);
                        }
                        else
                        {
                            empTbls.Remove(item.EmployeeId);
                            empTbls.Add(item.EmployeeId, oldValue + 1);
                        }
                    }
                }
            }

            foreach (var item in empTbls)
            {
                EmployeeCountInProjectModel employeeCountInProjectModel = new EmployeeCountInProjectModel()
                {
                    EmpName      = _context.Employee.FirstOrDefault(e => e.Id == item.Key).FullName,
                    ProjectCount = item.Value
                };
                result.EmployeeCountInProjects.Add(employeeCountInProjectModel);
            }
            return(result);
        }
Example #2
0
 public EmployeeStatisticsModel Statistic(string email)
 {
     try
     {
         EmployeeStatisticsModel result = _employeeRepository.Statistic(email);
         return(result);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }