Пример #1
0
        public IActionResult Index(SortState sortOrder = SortState.NameAsc)
        {
            var vacancies = mapper.Map <ICollection <VacancyViewModel> >(vacancyManager.GetAll());

            if (HttpContext.User.IsInRole("Employee"))
            {
                vacancies = vacancies.Where(v => v.CreatorId == userManager.GetByLogin(User.Identity.Name).Id).ToList();
            }
            ViewData["NameSortParm"]    = sortOrder == SortState.NameAsc ? SortState.NameDesc : SortState.NameAsc;
            ViewData["CompanySortParm"] = sortOrder == SortState.CompanyNameAsc ? SortState.CompanyNameDesc : SortState.CompanyNameAsc;
            ViewData["TermSortParm"]    = sortOrder == SortState.TermAsc ? SortState.TermDesc : SortState.TermAsc;
            ViewData["SalarySortParm"]  = sortOrder == SortState.SalaryAsc ? SortState.SalaryDesc : SortState.SalaryAsc;

            switch (sortOrder)
            {
            case SortState.NameAsc:
                vacancies = vacancies.OrderBy(v => v.Name).ToList();
                break;

            case SortState.NameDesc:
                vacancies = vacancies.OrderByDescending(v => v.Name).ToList();
                break;

            case SortState.CompanyNameAsc:
                vacancies = vacancies.OrderBy(v => v.Company).ToList();
                break;

            case SortState.CompanyNameDesc:
                vacancies = vacancies.OrderByDescending(v => v.Company).ToList();
                break;

            case SortState.TermAsc:
                vacancies = vacancies.OrderBy(v => v.Term).ToList();
                break;

            case SortState.TermDesc:
                vacancies = vacancies.OrderByDescending(v => v.Term).ToList();
                break;

            case SortState.SalaryAsc:
                vacancies = vacancies.OrderBy(v => v.Salary).ToList();
                break;

            case SortState.SalaryDesc:
                vacancies = vacancies.OrderByDescending(v => v.Salary).ToList();
                break;

            default:
                vacancies = vacancies.OrderBy(v => v.Name).ToList();
                break;
            }

            return(View(vacancies));
        }
Пример #2
0
        public IActionResult SelectVacancies()
        {
            var candidate = candidateManager.GetAll().FirstOrDefault(v => v.Creator.Id == userManager.GetByLogin(User.Identity.Name).Id);

            if (candidate == null)
            {
                return(RedirectToAction("CreateOrUpdate", "Candidate"));
            }
            else
            {
                List <Vacancy> vacancies = new List <Vacancy>();
                foreach (var skill in candidate.Skills.Select(s => s.Id))
                {
                    vacancies.AddRange(vacancyManager.GetAll().Where(v => v.Salary >= candidate.Salary && v.Skills.Select(s => s.Id).Contains(skill) && v.IsActive && v.Term <= DateTime.Now));
                }

                var entity = mapper.Map <ICollection <VacancyViewModel> >(vacancies);
                return(View(entity));
            }
        }
Пример #3
0
 /// <inheritdoc/>
 public ICollection <VacancyDTO> GetAll()
 {
     return(mapper.Map <ICollection <VacancyDTO> >(vacancyManager.GetAll()));
 }