/// <summary>
        /// this method will fetch all the members of the project
        /// </summary>
        /// <param name="projectId"></param>
        /// <returns></returns>
        public async Task <List <EmployeeBasicDetailsDto> > GetProjectMembers(Guid projectId)
        {
            var projectMembersList = await _projectManagementRepository.GetProjectMembers(projectId);

            var projectMemberDetailsList = new List <EmployeeBasicDetailsDto>();

            foreach (var projectMember in projectMembersList)
            {
                var projectMemberDetails = _mapper.Map <EmployeeBasicDetailsDto>(projectMember);
                projectMemberDetails.Id = projectMember.EmployeeId;
                if (projectMember.ProjectManager != null)
                {
                    var projectManagerDetails = new GetEmployeeListDto
                    {
                        Id   = (Guid)projectMember.ProjectManager,
                        Name = await _employeeService.GetEmployeeNameById((Guid)projectMember.ProjectManager)
                    };

                    projectMemberDetails.ProjectManagerDetails = projectManagerDetails;
                }
                if (projectMember.ProjectReportingManager != null)
                {
                    var reportingManagerDetails = new GetEmployeeListDto
                    {
                        Id   = (Guid)projectMember.ProjectReportingManager,
                        Name = await _employeeService.GetEmployeeNameById((Guid)projectMember.ProjectReportingManager)
                    };
                    projectMemberDetails.ReportingManagerDetails = reportingManagerDetails;
                }
                projectMemberDetails.Name = await _employeeService.GetEmployeeNameById(projectMember.EmployeeId);

                var employeeDetails = await _employeeRepository.GetEmployeeInformationAsync(projectMember.EmployeeId);

                if (employeeDetails != null)
                {
                    projectMemberDetails.CompanyId = employeeDetails.CompanyId;
                    var department = await _departmentDesignationService.GetDepartment(employeeDetails.DepartmentDesignationId);

                    if (department != null)
                    {
                        projectMemberDetails.Department = department.Name;
                    }
                    var designation = await _departmentDesignationService.GetDesignation(employeeDetails.DepartmentDesignationId);

                    if (designation != null)
                    {
                        projectMemberDetails.Designation = designation.Title;
                    }
                }

                projectMemberDetailsList.Add(projectMemberDetails);
            }
            return(projectMemberDetailsList);
        }
예제 #2
0
        /// <summary>
        /// this method is used to fetch list all project
        /// </summary>
        /// <returns></returns>
        public async Task <List <GetProjectsDetailsDto> > GetProjectList()
        {
            var projectDetailsList = await _projectRepository.GetListOfProjectAsync();

            var listOfProject = new List <GetProjectsDetailsDto>();

            foreach (var p in projectDetailsList)
            {
                var listOfManager  = new List <GetEmployeeListDto>();
                var projectDetail  = _mapper.Map <GetProjectsDetailsDto>(p);
                var projectMembers = await _projectManagementRepository.GetProjectMembers(p.Id);

                projectDetail.ProjectMembersCount = projectMembers.Count();
                listOfProject.Add(projectDetail);
            }
            return(listOfProject);
        }