public ActionResult Index()
 {
     db = new dbTIREntities();
     siteUser = ((SiteUser)Session["SiteUser"]);
     assScoreService = new AssessmentScoreService(siteUser, db);
     commonService = new CommonService(siteUser, db);
     AssessmentScoreViewModel model = new AssessmentScoreViewModel();
     model.DistrictName = siteUser.Districts[0].Name;
     model.DistrictId = siteUser.Districts[0].Id;
     FillDropDowns(model);
     return View(model);
 }
 public ActionResult Search(AssessmentScoreViewModel model)
 {
     db = new dbTIREntities();
     siteUser = ((SiteUser)Session["SiteUser"]);
     assScoreService = new AssessmentScoreService(siteUser, db);
     model.DistrictName = siteUser.Districts[0].Name;
     model.DistrictId = siteUser.Districts[0].Id;
     model.StudentScores = assScoreService.GetAssessmentScoreData(model);
     FillDropDowns(model);
    TempData["AssessmentModel"] = model;
     return View("Index", model);
 }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public List<StudentScore> GetAssessmentScoreData(AssessmentScoreViewModel model)
        {
            
            int schoolYearId = int.Parse(model.SchoolYearId);
            int assessmentTypeId = int.Parse(model.AssessmentTypeId);
            int schoolTermId = int.Parse(model.SchoolTermId);
            List<int> schoolIds = _db.tblSchools.Where(x=>x.DistrictId == model.DistrictId).Select(x=>x.SchoolId).ToList(); 

            IQueryable<StudentScore> query;

                int userAssignedDistrict = _siteUser.Districts[0].Id;
                query = (
                    from a in _db.tblAssessments
                    join ass in _db.tblAssessmentScores on a.AssessmentId equals ass.AssessmentId
                    join s in _db.tblStudents on ass.StudentId equals s.StudentId
                    join ssy in _db.tblStudentSchoolYears on s.StudentId equals ssy.StudentId
                    join sub in _db.tblSubjects on a.SubjectId equals sub.SubjectId
                    where a.AssessmentTypeId == assessmentTypeId
                    && a.SchoolTermId == schoolTermId
                    && a.SchoolYearId == schoolYearId
                    && ssy.SchoolYearId == schoolYearId
                    && schoolIds.Contains(ssy.ServingSchoolId)                     
                    select new StudentScore()
                    {
                        Subject = sub.SubjectDesc,
                        LocalId = s.LocalId,
                       FirstName = s.FirstName,
                       LastName = s.LastName,
                       Score = ass.Score,
                       AssessmentType = a.tblAssessmentType.AssessmentTypeDesc,
                       SchoolTerm = a.tblSchoolTerm.SchoolTermDesc,
                       SchoolYear = ssy.tblSchoolYear.SchoolYearDesc,
                       AssessmentDesc = a.AssessmentDesc,
                       StudentId = s.StudentId
                    });

                var result = query.Where(s => (s.FirstName.ToUpper() + " " + s.LastName.ToUpper()).Contains(model.StudentName.ToUpper())).ToList(); 
                return result;
        }
 private void FillDropDowns(AssessmentScoreViewModel model)
 {
     siteUser = ((SiteUser)Session["SiteUser"]);
     commonService = new CommonService(siteUser, db);
     assScoreService = new AssessmentScoreService(siteUser, db);
     model.AssessmentTypes = commonService.GetAssessmentType();
     model.SchoolYears = commonService.GetSchoolYear();
     model.SchoolTerms = commonService.GetSchoolTerm();
 }