/** * Returns results of search the jobs data by key/value, using * inclusion of the search term. */ public List <Job> FindByColumnAndValue(JobFieldType column, string value) { var results = from j in Jobs where GetFieldByType(j, column).Contains(value) select j; return(results.ToList()); }
// Lists Jobs with a given field matching a given value public IActionResult Jobs(JobFieldType column, string value) { SearchJobsViewModel jobsViewModel = new SearchJobsViewModel(); jobsViewModel.Jobs = jobData.FindByColumnAndValue(column, value); jobsViewModel.Title = "Jobs with " + column + ": " + value; return(View(jobsViewModel)); }
/** * Returns results of search the jobs data by key/value, using * inclusion of the search term. */ public List <Job> FindByColumnAndValue(JobFieldType column, string value) { if (String.IsNullOrEmpty(value)) { var results = Jobs; return(results.ToList()); } else { var results = from j in Jobs where GetFieldByType(j, column).Contains(value) select j; return(results.ToList()); } }
// Lists the values of a given column, or all jobs if selected public IActionResult Values(JobFieldType column) { if (column.Equals(JobFieldType.All)) { SearchJobsViewModel jobsViewModel = new SearchJobsViewModel(); jobsViewModel.Jobs = jobData.Jobs; jobsViewModel.Title = "All Jobs"; return(View("Jobs", jobsViewModel)); } else { JobFieldsViewModel jobFieldsViewModel = new JobFieldsViewModel(); IEnumerable <JobField> fields; //this is an instance of a list called fields, its data type is JobField //it will hold the jobs found from the search switch (column) { //switch cases that take a column type and adds all jobs in jobdata that match to a list //while converting it to a jobfield object case JobFieldType.Employer: fields = jobData.Employers.ToList().Cast <JobField>(); break; case JobFieldType.Location: fields = jobData.Locations.ToList().Cast <JobField>(); break; case JobFieldType.CoreCompetency: fields = jobData.CoreCompetencies.ToList().Cast <JobField>(); break; case JobFieldType.PositionType: default: fields = jobData.PositionTypes.ToList().Cast <JobField>(); break; } jobFieldsViewModel.Fields = fields; //view model that will take all the jobs found and pass it to view jobFieldsViewModel.Title = "All " + column + " Values"; jobFieldsViewModel.Column = column; return(View(jobFieldsViewModel)); } }
// Lists the values of a given column, or all jobs if selected public IActionResult Values(JobFieldType column) { if (column.Equals(JobFieldType.All)) { SearchJobsViewModel jobsViewModel = new SearchJobsViewModel { Jobs = jobData.Jobs, Title = "All Jobs" }; return(View("Jobs", jobsViewModel)); } else { JobFieldsViewModel jobFieldsViewModel = new JobFieldsViewModel(); IEnumerable <JobField> fields; switch (column) { case JobFieldType.Employer: fields = jobData.Employers.ToList().Cast <JobField>(); break; case JobFieldType.Location: fields = jobData.Locations.ToList().Cast <JobField>(); break; case JobFieldType.CoreCompetency: fields = jobData.CoreCompetencies.ToList().Cast <JobField>(); break; case JobFieldType.PositionType: default: fields = jobData.PositionTypes.ToList().Cast <JobField>(); break; } jobFieldsViewModel.Fields = fields; jobFieldsViewModel.Title = "All " + column + " Values"; jobFieldsViewModel.Column = column; return(View(jobFieldsViewModel)); } }
/** * Returns the JobField of the given type from the Job object, * for all types other than JobFieldType.All. In this case, * null is returned. */ public static JobField GetFieldByType(Job job, JobFieldType type) { switch (type) { case JobFieldType.Employer: return(job.Employer); case JobFieldType.Location: return(job.Location); case JobFieldType.CoreCompetency: return(job.CoreCompetency); case JobFieldType.PositionType: return(job.PositionType); } throw new ArgumentException("Cannot get field of type: " + type); }
//constructor to assign default value to Column public SearchJobsViewModel(JobFieldType column = JobFieldType.All) { Column = column; }
public FacetableAttribute(string displayName, JobFieldType fieldDataType) { this.DisplayName = displayName; this.FieldDataType = fieldDataType; }