public IQueryable <Resume> BuildQuery(ResumeSearchFilter filter) { IQueryable <Resume> query = _context.Resumes; AddApplicantCondition(query, filter.ApplicantId); AddAreasCondition(query, filter.AreaIds); //AddMetroStationsCondition(filter.MetroStationIds); AddBusinessTripReadinessCondition(query, filter.BusinessTripReadinessIds); AddSpecializationsCondition(query, filter.SpecializationIds); AddEmploymentsCondition(query, filter.EmploymentIds); AddSchedulesCondition(query, filter.ScheduleIds); AddSkillsCondition(query, filter.SkillIds); AddCitizenshipCondition(query, filter.CitizenshipIds); AddWorkTicketCondition(query, filter.WorkTicketIds); AddTravelTimesCondition(query, filter.TravelTimeIds); AddLocaleCondition(query, filter.ResumeLocaleIds); AddDrivingLicenseCondition(query, filter.DrivingLicenseTypeIds); AddRelocationCondition(query, filter.RelocationPossibility); AddLanguagesCondition(query, filter.Languages); AddSalaryCondition(query, filter.Salary); AddUpdatedCondition(query, filter.UpdatedAtMin, filter.UpdatedAtMax); AddVehicleCondition(query, filter.HasVehicle); AddTitleCondition(query, filter.Title); query = query .Skip(filter.Offset) .Take(filter.Count); return(query); }
public ActionResult Resume_Read(DataSourceRequest request) { ResumeSearchFilter filter = Session[typeof(ResumeSearchFilter).FullName + "Resume_Read_Search"] as ResumeSearchFilter; if (filter == null) { filter = new ResumeSearchFilter(); } List <UserDetailModel> returnObjs = UserDetailModel.SearchResumes(request.Page, request.PageSize, filter); return(Json(Helper.ToUIDataSourceResult <UserDetailModel>(false, returnObjs, request, returnObjs.Count()), JsonRequestBehavior.AllowGet)); }
public async Task <IEnumerable <Resume> > GetAsync(ResumeSearchFilter filter) { var builder = new ResumeSearchBuilder(_context); var query = builder.BuildQuery(filter); var request = IncludeReferences(query); var result = await request.ToListAsync(); await LoadReferences(); return(result); }
public async Task <IActionResult> Search([FromBody] ResumeSearchFilter filter) { var builder = new ResumeSearchBuilder(_context); var query = builder.BuildQuery(filter); var includableQuery = query //.Include(x => x.Area) .Include(x => x.Applicant) .ThenInclude(x => x.Gender) .Include(x => x.BusinessTripReadiness) .Include(x => x.Certificates) .Include(x => x.Citizenship) .ThenInclude(x => x.Area) .Include(x => x.DrivingLicenseTypes) .ThenInclude(x => x.DrivingLicenseType) .Include(x => x.Education) //.AlsoInclude(x => x.EducationalLevel) .ThenInclude(x => x.Specializations) .ThenInclude(x => x.Specialization) .Include(x => x.Employments) .ThenInclude(x => x.Employment) .Include(x => x.Experience) .ThenInclude(x => x.Specialization) .Include(x => x.Languages) //.AlsoInclude(x => x.Level) //.AlsoInclude(x => x.Language) .Include(x => x.MetroStation) .ThenInclude(x => x.Line) .ThenInclude(x => x.Metro) .Include(x => x.RelocationPossibility) .ThenInclude(x => x.RelocationType) .Include(x => x.ResumeLocale) .Include(x => x.Specializations) //.ThenInclude(x => x.Specialization) .Include(x => x.Salary) .ThenInclude(x => x.Currency) .Include(x => x.Schedules) .ThenInclude(x => x.Schedule) .Include(x => x.Skills) .ThenInclude(x => x.Skill) .Include(x => x.TravelTime) .Include(x => x.WorkTicket) .ThenInclude(x => x.Area) .Include(x => x.ResumeStatus); var allowed = await _securityManager.HasPermissionAsync(includableQuery, AccessOperation.READ); if (!allowed) { return(Forbid()); } var result = await includableQuery.ToListAsync(); await _context.Areas.LoadAsync(); await _context.Languages.LoadAsync(); await _context.LanguageLevels.LoadAsync(); await _context.EducationalLevels.LoadAsync(); await _context.Specializations.LoadAsync(); var dto = result.Select(Mapper.Map <DtoResume>).ToList(); return(Ok(dto)); }
public ActionResult SearchResume(ResumeSearchFilter filter) { Session[typeof(ResumeSearchFilter).FullName + "Resume_Read_Search"] = filter; return(Json(filter, JsonRequestBehavior.AllowGet)); }