Пример #1
0
 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);
     }
 }
Пример #2
0
        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"));
            }
        }