Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
 public ActionResult SearchResume(ResumeSearchFilter filter)
 {
     Session[typeof(ResumeSearchFilter).FullName + "Resume_Read_Search"] = filter;
     return(Json(filter, JsonRequestBehavior.AllowGet));
 }