public ActionResult PreTest(TestModel myModel, IFormCollection form, string id) { CookieOptions option = new CookieOptions(); option.Expires = DateTime.Now.AddMinutes(1200); option.IsEssential = true; Response.Cookies.Append("CaseId", id, option); Response.Cookies.Append("lastVisited", "PreTest", option); var check = User.Identity.IsAuthenticated; if (!check) { return(RedirectToAction("Account", "Identity", new { id = "Login" })); } TestModel myTestModel = myModel; int userID = int.Parse(Request.Cookies["uID"]); int caseID = int.Parse(id); if (id != null) { caseID = int.Parse(id); } using (var db = new ModelDbContext()) { int checkTaken = (from c in db.DataCollectionTable where c.Case_Id == caseID && c.User_Id == userID && c.Pre_Test == 1 select c.Answer_Id).Count(); if (checkTaken == 0) { int?myAttempt = (from a in db.AttemptTable where a.Case_Id == caseID && a.User_Id == userID && a.Pre_Test == 0 select a.Attempt_Id).Count(); Attempt_Table newAttempt = new Attempt_Table() { Attempt = 1, User_Id = userID, Case_Id = caseID, Date_Time = DateTime.Now, Pre_Test = 1 }; db.Add(newAttempt); db.SaveChanges(); foreach (var answerID in myTestModel.SelectedPreTestAnswer) { int questionID = myTestModel.getQuestionID(answerID); Data_Collection_Table collectAnswer = new Data_Collection_Table { User_Id = userID, Answer_Id = answerID, Pre_Test = 1, Attempt = null, Question_Id = questionID, Case_Id = caseID }; db.Add(collectAnswer); } db.SaveChanges(); } return(RedirectToAction("Activity", "CME", new { id = caseID, q = 0 })); } }
public ActionResult Results(string id) { CookieOptions option = new CookieOptions(); option.Expires = DateTime.Now.AddMinutes(1200); option.IsEssential = true; Response.Cookies.Append("CaseId", id, option); Response.Cookies.Append("lastVisited", "Result", option); var check = User.Identity.IsAuthenticated; if (!check) { return(RedirectToAction("Account", "Identity", new { id = "Login" })); } int userID = int.Parse(Request.Cookies["uID"]); int caseID = 0; if (id != null) { caseID = int.Parse(id); } TestModel myTestModel = new TestModel(); myTestModel.UserId = userID.ToString(); float rounded = myTestModel.getGrade(userID, caseID); using (var db = new ModelDbContext()) { if (myTestModel.IsEarned(userID, caseID) == true) { return(RedirectToAction("Evaluation", "CME", new { id = caseID.ToString() })); } else { int?myAttempt = (from a in db.AttemptTable where a.Case_Id == caseID && a.User_Id == userID && a.Pre_Test == 0 select a.Attempt_Id).Count(); Attempt_Table newAttempt = new Attempt_Table() { Attempt = myAttempt + 1, User_Id = userID, Case_Id = caseID, Date_Time = DateTime.Now, Pre_Test = 0 }; db.Add(newAttempt); db.SaveChanges(); } if (rounded >= 75) { Earned_CE_Table earnedRecord = new Earned_CE_Table() { Case_Id = caseID, User_Id = userID, Date = DateTime.Now.ToShortDateString(), Pass = 1 }; db.Add(earnedRecord); db.SaveChanges(); } } return(View(myTestModel)); }