Ejemplo n.º 1
0
        public ActionResult SavedRecommendations()
        {
            var loggedUserId = Int32.Parse(User.Identity.GetUserId());
            var recs         = db.Recommendations.Where(r => r.UserId == loggedUserId).Select(r => r.Id).ToList();
            var recsRVM      = RecommendationExtractorService.getRecommendationVMListByIdList(recs, true);

            ViewBag.recommendationList = recsRVM;
            return(View());
        }
Ejemplo n.º 2
0
        public ActionResult Result(int specializationId, double Startgrade, string iii = "", string Governorate = "", double Fees = 0, string course = "")
        {
            var bb         = iii.Split(',');
            var interstids = new List <int>();

            if (iii.Length > 0)
            {
                foreach (var b in bb)
                {
                    interstids.Add(Int32.Parse(b));
                }
            }
            var cc        = course.Split(',');
            var courseids = new List <int>();

            if (course.Length > 0)
            {
                foreach (var c in cc)
                {
                    courseids.Add(Int32.Parse(c));
                }
            }
            var courseList   = db.Courses.Where(r => courseids.Contains(r.Id)).ToList();
            var interestList = db.Interests.Where(a => interstids.Contains(a.Id)).ToList();

            var result = db.Tansiq.Where(a => a.SpecializationId == specializationId && a.Startgrade <= Startgrade).ToList();


            if (interestList.Count > 0)
            {
                result = result.Where(r => r.Division.Interests.Intersect(interestList).Any()).ToList();
            }

            if (courseList.Count > 0)
            {
                result = result.Where(n => n.Division.Courses.Intersect(courseList).Any()).ToList();
            }

            if (Governorate != "" && Governorate != null)
            {
                result = result.Where(n => n.Division.Faculty.University.Governorate == Governorate).ToList();
            }

            if (Fees > 0)
            {
                result = result.Where(n => n.Division.Fees >= Fees).ToList();
            }



            SearchHistory searchHistory = new SearchHistory()
            {
                Governorate      = Governorate,
                SpecializationId = specializationId,
                Grade            = Startgrade,
                Timestamp        = DateTime.Now,
                Interests        = interestList
            };

            db.SearchHistories.Add(searchHistory);
            db.SaveChanges();

            foreach (var x in result)
            {
                db.Recommendations.Add(new Recommendation {
                    SearchHistoryId = searchHistory.Id, DivisionId = x.Division.Id
                });
            }
            db.SaveChanges();

            var recIds = db.Recommendations.Where(r => r.SearchHistoryId == searchHistory.Id).Select(r => r.Id).ToList();

            List <ResultViewModel> Results = RecommendationExtractorService.getRecommendationVMListByIdList(recIds);

            return(View(Results));
        }