public List <Project> GetProjectsByCriteria(ProjectSearchCriteriaModel criteria) { // var allProjects = GetProjects().ToList(); var projectList = GetProjects().ToList();; if (projectList.Count() != 0) { if (!string.IsNullOrEmpty(criteria.Status)) { projectList = (projectList.Where(p => p.Status.GetDescription() == criteria.Status)).ToList(); } if (!string.IsNullOrEmpty(criteria.ProjectType)) { projectList = (projectList.Where(p => p.ProjectType == criteria.ProjectType)).ToList(); } if (!string.IsNullOrEmpty(criteria.ProjectManager)) { var employeeIds = _employeeService.GetEmployeeByName(criteria.ProjectManager).Select(pm => pm.EmployeeId).ToList(); projectList = projectList.Where(p => employeeIds.Contains(Convert.ToInt32(p.ProjectManagerId))).ToList(); } if (!string.IsNullOrEmpty(criteria.EngagementManager)) { var employeeIds = _employeeService.GetEmployeeByName(criteria.EngagementManager).Select(pm => pm.EmployeeId).ToList(); projectList = projectList.Where(p => employeeIds.Contains(Convert.ToInt32(p.EngagementManagerId))).ToList(); } // //projectList = projectList.Where(p => p.Status.GetDescription().Equals(string.IsNullOrEmpty(criteria.Status) ? p.Status.GetDescription(): criteria.Status.Trim()) // // && p.ProjectType.Equals(string.IsNullOrEmpty(criteria.ProjectType) ? p.ProjectType : criteria.ProjectType.Trim())).ToList(); // projectList = (projectList.Where(p => p.Status.GetDescription() == criteria.Status) ).ToList(); //// projectList = projectList.Where(p => p.ProjectType==criteria.ProjectType).ToList(); // if (!string.IsNullOrEmpty(criteria.EngagementManager) && projectList.Count() != 0) // { // var employeeIds = _employeeService.GetEmployeeByName(criteria.EngagementManager).Select(pm => pm.EmployeeId).ToList(); // projectList = projectList.Where(p => employeeIds.Contains(Convert.ToInt32(p.EngagementManagerId))).ToList(); // } // if (!string.IsNullOrEmpty(criteria.ProjectManager) && projectList.Count() != 0) // { // var employeeIds = _employeeService.GetEmployeeByName(criteria.ProjectManager).Select(pm => pm.EmployeeId).ToList(); // projectList = projectList.Where(p => employeeIds.Contains(Convert.ToInt32(p.ProjectManagerId))).ToList(); // } } return(projectList); }
// [CustomAuthorizeAttribute(AllowedRole = "Admin, Manager, User")] public ActionResult GetProjectsByCriteria(ProjectSearchCriteriaViewModel criteria) { IEnumerable <Project> projectsList; var searchCriteriaModel = new ProjectSearchCriteriaModel(); Mapper.Map(criteria, searchCriteriaModel); ViewData["Employees"] = _projectService.GetAllEmployees(); projectsList = _projectService.GetProjectsByCriteria(searchCriteriaModel); var projectListViewModel = new List <ProjectListViewModel>(); Mapper.Map(projectsList, projectListViewModel); var projects = new ProjectsViewModel { Projects = projectListViewModel, SearchCriteria = new ProjectSearchCriteriaViewModel() }; return(View("List", projects)); }