public List <string> recommendedjobs(string sessionid) { if (!string.IsNullOrEmpty(sessionid)) { Apriori app = new Apriori(); Itemset item11 = new Itemset(); itemset i = db.itemsets.Find(sessionid); List <string> itemsetsList = i.items.Split(',').ToList(); foreach (string sp in itemsetsList) { item11.Add(sp); } List <string> recommendation = new List <string>(); List <string> finalrecommendation = new List <string>(); List <string> jobid = new List <string>(); var rules = app.ruleList(); foreach (var temp in rules) { if (temp.X.Contains(item11)) { recommendation.Add(temp.Y.ToString()); } } foreach (var jobids in recommendation) { var v = jobids.Split(',').ToList(); foreach (var w in v) { string p = w.Substring(1, w.Length - 2).ToString(); finalrecommendation.Add(p); } } return(finalrecommendation); } else { return(null); } }
public ActionResult jobdetail(int?id) { if (Session["js_id"] != null) { string sessid = Session["sessid"].ToString(); itemset itemset = db.itemsets.Find(sessid); Recommendation rm = new Recommendation(); List <job> recommended = new List <job>(); if (itemset != null) { string temp = itemset.items; if (string.IsNullOrEmpty(temp)) { temp += id.ToString(); } else { int status = 0; var strarr = temp.Split(',').ToList(); foreach (var ichek in strarr) { int icheck_ = Convert.ToInt32(ichek); if (icheck_ == id) { status = 1; break; } } if (status == 0) { temp += "," + id.ToString(); itemset.items = temp; } } db.SaveChanges(); } else { itemset itemsetnew = new itemset(); itemsetnew.session_id = Session["sessid"].ToString(); itemsetnew.items = id.ToString(); db.itemsets.Add(itemsetnew); db.SaveChanges(); } List <string> jobids = rm.recommendedjobs(Session["sessid"].ToString()); if (jobids != null) { foreach (var tempIds in jobids) { int intjob = Convert.ToInt16(tempIds); var next = db.jobs.Where(a => a.job_id == intjob && a.status == 1).FirstOrDefault(); if (next != null) { recommended.Add(next); } } recommended = recommended.Distinct().ToList(); List <job_model> jobsfinal = new List <job_model>(); foreach (var item in recommended) { job_model jobmodel = new job_model(); jobmodel.category = item.category.ToString(); employer_info name = db.employer_info .Where(c => c.emp_id == item.employer) .SingleOrDefault(); jobmodel.image = name.logo; jobmodel.submission_date = item.submission_date; jobmodel.employer = name.company_name; jobmodel.full_address = item.full_address; jobmodel.job_id = item.job_id; jobmodel.title = item.title; jobmodel.job_type = item.job_type; jobmodel.emp_id = item.employer.HasValue ? Convert.ToInt32(item.employer) : 0; jobmodel.category = db.job_categories.Find(Convert.ToInt32(item.category)).category_name.ToString(); jobsfinal.Add(jobmodel); } ViewBag.recommended = jobsfinal; ViewBag.recognize = jobids; } } if (id != null) { jobdetails job_det = new jobdetails(); var data = (from p in db.jobs join q in db.employer_info on p.employer equals q.emp_id join r in db.job_categories on p.category equals r.jobcat_id where p.job_id == id select new { p, q.company_name, q.logo, q.emp_id, r.category_name }).FirstOrDefault(); List <job> jobs = new List <Models.job>(); if (data != null) { job_det.emp_id = data.emp_id; job_det.category_name = data.category_name; job_det.city = data.p.city; job_det.created_at = data.p.created_at; job_det.description = data.p.description; job_det.district = data.p.district; job_det.employer = data.company_name; job_det.experience = data.p.experience; job_det.full_address = data.p.full_address; job_det.gender = data.p.gender; job_det.job_id = data.p.job_id; job_det.job_level = data.p.job_level; job_det.job_type = data.p.job_type; job_det.openings = data.p.openings; job_det.postalcode = data.p.postalcode; job_det.salaryfrom = data.p.salaryfrom; job_det.salaryto = data.p.salaryto; job_det.state = data.p.state; job_det.status = data.p.status; job_det.skills = data.p.skills; job_det.submission_date = data.p.submission_date; job_det.title = data.p.title; jobs = db.jobs.ToList(); } ViewBag.logo = data.logo; int appcount = 0; jobs = jobs.Where(c => c.employer == data.p.employer && c.job_id != id).Take(5).ToList(); if (Session["role"] != null && Session["role"].ToString() == "jobseeker") { int userid = Convert.ToInt32(Session["userid"].ToString()); userid = (from r in db.jobseeker_info where r.login_info == userid select r.js_id).FirstOrDefault(); int count = (from p in db.applications where p.job_id == id where p.jobseeker_id == userid where p.status == 1 select p.job_id ).Count(); ViewBag.count = count; int shortlist = (from exa in db.interests where exa.job_id == id where exa.jobseeker_id == userid where exa.status == 1 select exa.int_id).Count(); ViewBag.interested = shortlist; } appcount = (from f in db.interests where f.status == 1 where f.job_id == id select f.int_id).Count(); ViewBag.appcount = appcount; ViewBag.data = jobs.ToList(); return(View(job_det)); } else { return(RedirectToAction("index", "login")); } }