public TaskResponse GetAllTasks(string searchKey, int currentPageIndex, int recordsCount, string searchFilter, int selectedTaskType) { var user = _commonService.GetCurrentUserContext(); var taskList = new TaskResponse(); var totalRecords = 0; IEnumerable <taskskill> dbTaskSkills; IEnumerable <Models.ResponseModels.Task.Task> tasks = null; var offeringToSearch = !string.IsNullOrWhiteSpace(searchFilter) && searchFilter == "M" ? user.Department.Split(' ')[0] : null; var listOfSkills = !string.IsNullOrWhiteSpace(searchFilter) && searchFilter == "R" ? user.SkillSet.Select(x => x.Value)?.ToList() : null; if (!(searchFilter == "R" && user.SkillSet.Count == 0)) { dbTaskSkills = _contributorRepository.GetFilteredTasks(listOfSkills, offeringToSearch, selectedTaskType, searchKey, currentPageIndex, recordsCount, out totalRecords); tasks = _taskSkillModelFactory.CreateModelList <Models.ResponseModels.Task.Task>(dbTaskSkills); } taskList.Tasks = tasks; taskList.TotalRecords = totalRecords; var dbTaskApplicants = _contributorRepository.GetAppliedTasks(user.UserId); var dbApplicantSkills = _userRepository.GetSkillsByUserId(user.UserId); foreach (var appliedTask in dbTaskApplicants) { var taskObj = tasks.Where(x => x.Id == appliedTask.TASK_ID).FirstOrDefault(); if (taskObj != null) { taskObj.IsApplied = true; } } if (taskList.Tasks != null) { foreach (var dbskill in dbApplicantSkills) { foreach (var task in taskList.Tasks) { if (task.Skills.Contains(dbskill.skill.VALUE)) { task.IsRecommended = true; } } } } return(taskList); }