public async Task <IActionResult> myAdsAsync(JobSearchViewModel jvm) { jvm.SearchResults = await jobRepository.GetPaged(s => s.CreatedBy == User.Identity.Name && (!String.IsNullOrEmpty(jvm.Keywords) ? s.Title.Contains(jvm.Keywords) : true) && (!String.IsNullOrEmpty(jvm.LocationId) ? s.JobLocations.Any(l => l.LocationId == jvm.LocationId) : true) && (!String.IsNullOrEmpty(jvm.OccupationId) ? s.OccupationId == jvm.OccupationId : true) && (jvm.MilitaryStatus.HasValue ? s.MilitaryStatus == jvm.MilitaryStatus : true) && (jvm.EducationLevel.HasValue ? s.EducationLevel == jvm.EducationLevel : true) && (jvm.WorkingStyle.HasValue ? s.WorkingStyle == jvm.WorkingStyle : true), s => (jvm.SortBy == 1 || jvm.SortBy == 2 ? s.Title : (jvm.SortBy == 3 || jvm.SortBy == 4 ? s.Occupation.Name : s.UpdateDate.ToString())), (jvm.SortBy == 1 || jvm.SortBy == 3 || jvm.SortBy == 5 ? false : (jvm.SortBy == 2 || jvm.SortBy == 4 || jvm.SortBy == 6)), 10, jvm.Page, "Company", "JobLocations", "JobLocations.Location"); return(View(jvm)); }
public async Task <IActionResult> Index(JobSearchViewModel jvm) { jvm.SearchResults = await jobRepository.GetPaged(s => s.IsActive == true && s.PublishDate <= DateTime.Now && DateTime.Now <= s.EndDate && (!String.IsNullOrEmpty(jvm.Keywords) ? s.Title.Contains(jvm.Keywords) : true) && (!String.IsNullOrEmpty(jvm.LocationId) ? s.JobLocations.Any(l => l.LocationId == jvm.LocationId) : true) && (jvm.MilitaryStatus.HasValue ? s.MilitaryStatus == jvm.MilitaryStatus : true) && (jvm.EducationLevel.HasValue ? s.EducationLevel == jvm.EducationLevel : true) && (jvm.WorkingStyle.HasValue ? s.WorkingStyle == jvm.WorkingStyle : true), s => (jvm.SortBy == 1 || jvm.SortBy == 2 ? s.Title : (jvm.SortBy == 3 || jvm.SortBy == 4 ? s.PublishDate.ToString("yyyy-MM-dd") : (jvm.SortBy == 5 || jvm.SortBy == 6 ? s.Company.LocationId: s.UpdateDate.ToString()))), (jvm.SortBy == 1 || jvm.SortBy == 3 || jvm.SortBy == 5 ? false : (jvm.SortBy == 2 || jvm.SortBy == 4 || jvm.SortBy == 6)), 5, jvm.Page, "Company", "JobLocations", "JobLocations.Location"); jvm.SearchResults.RouteValue = new RouteValueDictionary { { "keywords", jvm.Keywords }, { "locationId", jvm.LocationId }, { "sortBy", jvm.SortBy }, { "militaryStatus", jvm.MilitaryStatus }, { "educationLevel", jvm.EducationLevel }, { "workingStyle", jvm.WorkingStyle } }; ViewBag.Locations = new SelectList(locationRepository.GetAll().OrderBy(o => o.Name).ToList(), "Id", "Name", jvm.LocationId); ViewBag.Occupations = new SelectList(occupationRepository.GetAll().OrderBy(p => p.Name).ToList(), "Id", "Name", jvm.OccupationId); return(View(jvm)); }
public ActionResult Search(string SearchString) { var jobsTitle = db.Jobs.Where(x => x.Title.StartsWith(SearchString)); var jobsSkill = db.Jobs.Where(x => x.Skill.SkillName.StartsWith(SearchString)); var jobCategory = db.Jobs.Where(x => x.Category.CategoryName.StartsWith(SearchString)); JobSearchViewModel jobview = new JobSearchViewModel(); jobview.JobTitle = jobsTitle; jobview.JobSkill = jobsSkill; jobview.JobCategory = jobCategory; return(View(jobview)); }
//private Dictionary<string, object> JobModelToDict(JobSearchModel jsmodel) //{ // Dictionary<string, object> result = new Dictionary<string, object>(); // foreach (PropertyInfo property in typeof(JobSearchModel).GetProperties()) // { // var val = property.GetValue(jsmodel); // if (val == null || String.IsNullOrEmpty(val.ToString())) // continue; // result.Add(property.Name, val); // } // return result; //} #endregion private Dictionary <string, object> JobModelToDict(JobSearchViewModel jsmodel) { Dictionary <string, object> result = new Dictionary <string, object>(); foreach (PropertyInfo property in typeof(JobSearchViewModel).GetProperties()) { var val = property.GetValue(jsmodel); if (val == null || String.IsNullOrEmpty(val.ToString())) { continue; } result.Add(property.Name, val); } return(result); }
public ActionResult S(string o, string f, string s, string st, string ct, int?p, JobSearchViewModel jsmodelkk, JobListVM vm) { ViewBag.CurrentSort = o; ViewBag.PopularSortParm = "popular"; ViewBag.DateSortParm = o == "Date" ? "date_desc" : "Date"; ViewBag.SalarySortParm = "salary_desc"; if (s != null) { p = 1; } else { s = f; } ViewBag.CurrentFilter = s; var model = uow.jobRepository.GetAll(); var jsmodel = new JobSearchViewModel(); if (vm != null) { if (vm.JobSearchViewModel != null) { jsmodel = vm.JobSearchViewModel; } } ViewBag.Sstr = ""; if (!String.IsNullOrEmpty(s)) { jsmodel.SearchString = s; ViewBag.Sstr = s; } ViewBag.Stt = "Job Location"; if (!String.IsNullOrEmpty(st)) { jsmodel.State = st; ViewBag.Stt = st; } ViewBag.Cat = "Job Category"; if (!String.IsNullOrEmpty(ct)) { jsmodel.SearchString = ct; ViewBag.Cat = ct; } Dictionary <string, object> searchObj = JobModelToDict(jsmodel); model = jobService.FindJob(searchObj); switch (o) { case "salary_desc": model = model.OrderByDescending(m => m.MaximumSalary); break; case "popular": model = model.OrderByDescending(m => m.NumberOfApplicants); break; case "Date": model = model.OrderBy(m => m.DatePosted); break; case "date_desc": model = model.OrderByDescending(m => m.DatePosted); break; default: // Name ascending model = model.OrderByDescending(m => m.DatePosted); break; } int pageSize = 10; int pageNumber = (p ?? 1); var mod = new JobListVM { Jobs = model.ToPagedList(pageNumber, pageSize), JobSearchViewModel = jsmodel }; int jobStartNum = GetJobStart(pageNumber, pageSize); int jobEndNum = GetJobEnd(model.Count(), pageNumber, pageSize, jobStartNum); ViewBag.StartIndex = jobStartNum; ViewBag.EndIndex = jobEndNum; ViewBag.ModelCount = model.Count(); ViewBag.JobCatId = uow.jobCategoryRepository.GetAll().AsEnumerable() .Select(j => new SelectListItem { Text = j.Name, Value = Convert.ToString(j.Jobs.Count()) }); ViewBag.State = CountryStates.GetStates("Nigeria"); ViewBag.Companies = uow.companyRepository.GetAll().Select(c => c.Name); ViewBag.JobType = Enum.GetValues(typeof(JobType)); ViewBag.ExperienceLevel = Enum.GetValues(typeof(ExperienceLevel)); return(View(mod)); }