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)); }
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)); } }
/// <inheritdoc/> public ICollection <VacancyDTO> GetAll() { return(mapper.Map <ICollection <VacancyDTO> >(vacancyManager.GetAll())); }