Esempio n. 1
0
        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);
        }