/// <summary>
        /// this method is used to fetch  the Reporting Manager
        /// </summary>
        /// <param name="employeeId">EmployeeId of the project </param>
        /// <returns>returns the Reporting Manager</returns>
        public async Task <List <GetReportingManagerDto> > GetAllReportingManagers(Guid employeeId)
        {
            var reportingManager = await _reportingManagerService.GetReportingManager(employeeId);

            List <GetReportingManagerDto> resultList = new List <GetReportingManagerDto>();
            var reportingManagerList = await _projectManagementRepository.GetAllProjectsOfEmployee(employeeId);

            if (reportingManagerList != null)
            {
                foreach (var reportingManger in reportingManagerList)
                {
                    var projectDetails = await _projectRepository.GetProjectByIdAsync((Guid)reportingManger.ProjectId);

                    var empDetails = await _employeeRepository.GetEmployeeInformationAsync(reportingManger.EmployeeId);

                    var result = new GetReportingManagerDto
                    {
                        Name        = string.Format("{0} {1} {2}", empDetails.FirstName, empDetails.MiddleName, empDetails.LastName),
                        Id          = empDetails.Id,
                        ProjectId   = (Guid)reportingManger.ProjectId,
                        ProjectName = projectDetails.Name
                    };
                    resultList.Add(result);
                }

                resultList.Add(reportingManager);
                return(resultList);
            }
            return(null);
        }
        /// <summary>
        /// this method is used to fetch  the Reporting Manager
        /// </summary>
        /// <param name="employeeId">EmployeeId of the project </param>
        /// <returns>returns the Reporting Manager</returns>
        public async Task <GetReportingManagerDto> GetReportingManager(Guid employeeId)
        {
            var reportingManager = await _reportingManagerRepository.GetReportingManager(employeeId);

            if (reportingManager != null)
            {
                var empDetails = await _employeeRepository.GetEmployeeInformationAsync(reportingManager.ReportingManagerId);

                var result = new GetReportingManagerDto
                {
                    Name = string.Format("{0} {1} {2}", empDetails.FirstName, empDetails.MiddleName, empDetails.LastName),
                    Id   = empDetails.Id
                };
                return(result);
            }
            return(null);
        }
        public async Task <GetReportingManagerDto> GetReportingManager(Guid employeeId, Guid projectId)
        {
            var reportingManager = await _projectManagementRepository.GetReportingManager(employeeId, projectId);

            var projectName = await _projectRepository.GetProjectByIdAsync(projectId);

            if (reportingManager != null)
            {
                var reportingManagerDetails = await _employeeRepository.GetEmployeeInformationAsync(reportingManager.ProjectReportingManager);

                var result = new GetReportingManagerDto
                {
                    Name        = string.Format("{0} {1} {2}", reportingManagerDetails.FirstName, reportingManagerDetails.MiddleName, reportingManagerDetails.LastName),
                    Id          = reportingManagerDetails.Id,
                    ProjectId   = reportingManager.ProjectId,
                    ProjectName = projectName.Name
                };
                return(result);
            }
            return(null);
        }