public ActionResult quiz(string id) { int sklID = Convert.ToInt16(Session["sklID"].ToString()); quizViewModel model = new quizViewModel(); string username = Session["dev"].ToString(); tbUserCredential userCredential = db.tbUserCredentials.Where(uc => uc.username.Equals(username)).Single(); int Uid = userCredential.tbUser.userID; tbClient client = db.tbClients.Where(uc => uc.userID.Equals(Uid)).Single(); int devID = client.tbDevelopers.FirstOrDefault().devID; tbSkill skl = db.tbSkills.Where(uc => uc.devID.Equals(devID) && uc.skillID.Equals(sklID)).Single(); int i = Convert.ToInt16(id); List <tbQuestion> questions = db.tbQuestions.Where(q => q.skill.Equals(skl.name)).ToList(); if (i < questions.Count) { ViewBag.count = questions.Count; int Qid = questions[i].qID; List <tbAnswer> answers = db.tbAnswers.Where(a => a.qID == Qid).ToList(); model.tbSkill = skl; model.tbQuestion = questions; model.tbAnswer = answers; model.tbDeveloper = client.tbDevelopers.FirstOrDefault(); model.i = i; model.score = 0; } else { //quiz completed } return(View(model)); }
public ActionResult quiz(quizViewModel model, string id, string skill, string dev, string skills, string scr) { int i = Convert.ToInt16(id); int did = Convert.ToInt16(dev); int skid = Convert.ToInt16(skills); int score = Convert.ToInt16(scr); string ans = model.selectedAns; List <tbQuestion> questions = db.tbQuestions.Where(q => q.skill.Equals(skill)).ToList(); int total = questions.Count; int QidPrev = questions[i - 1].qID; List <tbAnswer> answersPrev = db.tbAnswers.Where(a => a.qID == QidPrev).ToList(); string corrAns = answersPrev.Find(item => item.isCorrect.Equals("Yes")).answer; if (ans.Equals(corrAns)) { score = score + 1; } model.tbDeveloper = db.tbDevelopers.Where(d => d.devID.Equals(did)).Single(); model.tbSkill = db.tbSkills.Where(uc => uc.devID.Equals(did) && uc.skillID.Equals(skid)).Single(); model.score = score; if (i < questions.Count) { ViewBag.count = questions.Count; int Qid = questions[i].qID; List <tbAnswer> answers = db.tbAnswers.Where(a => a.qID == Qid).ToList(); model.tbQuestion = questions; model.tbAnswer = answers; model.i = i; } else { tbEvaluation eval = new tbEvaluation(); eval.devID = did; eval.skill = skill; eval.date = System.DateTime.Today.ToString("yyyy-MM-dd"); eval.score = score; model.tbEvaluation = eval; //int perc = (score / total) ; //model.tbEvaluation.devID = did; //model.tbEvaluation.skill = skill; //model.tbEvaluation.date = System.DateTime.Today.ToString("yyyy-MM-dd"); //model.tbEvaluation.score = score; string hourlyR; if (score < 7 && score >= 5) { model.tbEvaluation.result = "Beginner"; hourlyR = "$10"; } else if (score <= 8 && score >= 7) { model.tbEvaluation.result = "Intermediate"; hourlyR = "$15"; } else if (score <= 10 && score > 8) { model.tbEvaluation.result = "Expert"; hourlyR = "$20"; } else { model.tbEvaluation.result = "Fail"; hourlyR = "Needs Re-evaluation"; } db.tbEvaluations.Add(eval); db.SaveChanges(); int evalid = model.tbEvaluation.evalID; string evalRes = model.tbEvaluation.result; var query = from proj in db.tbDevelopers where proj.devID == did select proj; foreach (tbDeveloper developer in query) { developer.tbClient.isProfileComplete = "No"; developer.tbClient.actionCont = "locDetails"; } db.SaveChanges(); var query1 = from proj in db.tbSkills where proj.skillID == skid && proj.devID == did select proj; foreach (tbSkill skl in query1) { skl.skillLevel = evalRes; skl.hourlyRate = hourlyR; } db.SaveChanges(); return(RedirectToAction("evalRes", "Developer", new { id = skid })); } return(View(model)); }