private void SaveAssessmentClassScore(AssessmentClassScore assessmentScoreObj)
 {
     using (var context = new dbTIREntities())
     {
         using (var dbContextTransaction = context.Database.BeginTransaction())
         {
             try
             {
                 int defaultValue = EDS.Constants.SystemParameter.ScoreTargetDefaultValue.DefaultValue;
                 int?score        = assessmentScoreObj.Score != defaultValue ? assessmentScoreObj.Score : null;
                 int?projection   = assessmentScoreObj.Target != defaultValue ? assessmentScoreObj.Target : null;
                 tblAssessmentScore tblAssessmentScore = new tblAssessmentScore()
                 {
                     AssessmentId   = assessmentScoreObj.AssessmentId,
                     StudentId      = assessmentScoreObj.StudentId,
                     Score          = score,
                     Projection     = projection,
                     GradeLevel     = assessmentScoreObj.GradeLevel,
                     SchoolID       = assessmentScoreObj.SchoolId,
                     CreateDatetime = DateTime.UtcNow
                 };
                 context.tblAssessmentScores.Add(tblAssessmentScore);
                 context.SaveChanges();
                 dbContextTransaction.Commit();
             }
             catch (Exception ex)
             {
                 dbContextTransaction.Rollback();
                 throw ex;
             }
         }
     }
 }
        public ActionResult Edit(
            [Bind(
                 Include =
                     "Subject,LocalId,StudentId,FirstName,LastName,Score,AssessmentType,SchoolTerm,SchoolYear,AssessmentDesc,AssessmentId"
                 )] StudentScore studentScore)
        {
            try
            {
                dbTIREntities          db                = new dbTIREntities();
                SiteUser               siteUser          = ((SiteUser)Session["SiteUser"]);
                AssessmentScoreService assessmentService = new AssessmentScoreService(siteUser, db);
                ViewBag.AllowEdit = HelperService.AllowUiEdits(siteUser.RoleDesc, "STUDENT");

                tblAssessmentScore assscore =
                    db.tblAssessmentScores.Where(
                        k => k.AssessmentId == studentScore.AssessmentId && k.StudentId == studentScore.StudentId)
                    .ToList()
                    .FirstOrDefault();
                assscore.Score = studentScore.Score;

                assessmentService.UpdateStudentScore(assscore);
                return(RedirectToAction("Search", TempData["AssessmentModel"]));
                //  return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                Logging log = new Logging();
                log.LogException(ex);
                return(View("GeneralError"));
            }
        }
        /// <summary>
        /// This function is used to Add and Update student
        /// </summary>
        /// <param name="assessmentScore"></param>
        public void UpdateStudentScore(tblAssessmentScore assessmentScore)
        {
            using (var dbContextTransaction = _db.Database.BeginTransaction())
            {
                try
                {
                    assessmentScore.ChangeDatetime = DateTime.Now;

                    _db.tblAssessmentScores.Attach(assessmentScore);
                    _db.Entry(assessmentScore).State = EntityState.Modified;

                    _db.SaveChanges();

                    dbContextTransaction.Commit();
                }
                catch (Exception ex)
                {
                    dbContextTransaction.Rollback();
                    throw ex;
                }
            }
        }
        /// <summary>
        /// This function is used to Add and Update student
        /// </summary>
        /// <param name="assessmentScore"></param>
        public void UpdateStudentScore(tblAssessmentScore assessmentScore )
        {

            using (var dbContextTransaction = _db.Database.BeginTransaction())
                {
                    try
                    {
                        
                        assessmentScore.ChangeDatetime = DateTime.Now;

                        _db.tblAssessmentScores.Attach(assessmentScore);
                        _db.Entry(assessmentScore).State = EntityState.Modified;

                        _db.SaveChanges();
                       
                        dbContextTransaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();
                        throw ex;
                    }
                
            }

        }