// GET: Applications public async Task <IActionResult> Index(int pageIndex = 1, int pageSize = 10, string searchQuery = null) { IQueryable <Application> recruiterAgencyContext = _context.Applications .Include(x => x.Candidate) .ThenInclude(x => x.Department) .ThenInclude(x => x.City) .Include(x => x.ApplicationStatus) .Include(x => x.Vacancy) .ThenInclude(x => x.JobTitle) .Include(x => x.Vacancy.CompanyOffice.Company) .Include(x => x.Vacancy.Customer) .Where(x => x.Vacancy.RecruiterId == int.Parse(HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier))); //if (!string.IsNullOrWhiteSpace(searchQuery)) //{ // recruiterAgencyContext = recruiterAgencyContext.Where(x => // x.Candidate.FirstName.Contains(searchQuery) // || x.Candidate.LastName.Contains(searchQuery) // || x.Vacancy.JobTitle.Name.Contains(searchQuery)); //} //var paginated = await Paginated<Application>.PaginateAsync(recruiterAgencyContext, pageIndex, pageSize); //paginated.SearchQuery = searchQuery; var response = new VacancyApplicationsResponse { VacancyId = null, Applications = await recruiterAgencyContext.ToListAsync() }; return(View(response)); }
public async Task <IActionResult> Applications(int vacancyId, int pageIndex = 1, int pageSize = 10, string searchQuery = null) { var vacancy = await _context.Vacancies .Include(x => x.CompanyOffice) .ThenInclude(x => x.Company) .Include(x => x.CompanyOffice.City) .Include(x => x.Customer) .Include(x => x.JobTitle) .ThenInclude(x => x.JobCategory) .FirstOrDefaultAsync(x => x.VacancyId == vacancyId && x.RecruiterId == int.Parse(HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier))); if (vacancy == null) { return(Forbid()); } IQueryable <Application> recruiterAgencyContext = _context.Applications .Include(x => x.Candidate) .ThenInclude(x => x.Department) .ThenInclude(x => x.City) .Include(x => x.ApplicationStatus) .Include(x => x.Vacancy) .Where(x => x.VacancyId == vacancyId); //if (!string.IsNullOrWhiteSpace(searchQuery)) //{ // recruiterAgencyContext = recruiterAgencyContext.Where(x => // x.Candidate.FirstName.Contains(searchQuery) // || x.Candidate.LastName.Contains(searchQuery)); //} //var paginated = await Paginated<Application>.PaginateAsync(recruiterAgencyContext, pageIndex, pageSize); //paginated.SearchQuery = searchQuery; var response = new VacancyApplicationsResponse { VacancyId = vacancyId, VacancyCustomer = $"{vacancy.Customer.FirstName} {vacancy.Customer.LastName}", VacancyJobTitle = $"{vacancy.JobTitle.Name}", VacancyCompany = vacancy.CompanyOffice.Company.Name, VacancyCompanyOffice = $"{vacancy.CompanyOffice.City.Name}, {vacancy.CompanyOffice.Address}", Applications = await recruiterAgencyContext.ToListAsync(), VacancyClosed = vacancy.EndDate.HasValue }; return(View("Applications/Index", response)); }