public async Task<ActionResult> Create(AssessmentSheetViewModel assessmentSheet) { var id = int.Parse(Session["ExamRegistrationId"].ToString()); if (ModelState.IsValid) { switch (assessmentSheet.ExamTypeId) { case 1: SaveAssessmentSheetTheory(id, assessmentSheet); break; case 2: SaveAssessmentSheetPolygon(id, assessmentSheet); break; case 3: SaveAssessmentSheetCity(id, assessmentSheet); break; } await db.SaveChangesAsync(); return RedirectToAction("Index", "ExamRegistration"); } var examRegistration = dbView.ViewExamRegistration.First(w => w.ExamRegistrationId == id); var candidate = dbView.ViewCandidates.First(w => w.CandidateId == examRegistration.CandidateId); ViewBag.Candidate = candidate; return View(assessmentSheet); }
/// <summary> /// /// </summary> /// <param name="id">ExamRegistrationId</param> /// <returns></returns> public ActionResult Create(int? id) { db.Configuration.ProxyCreationEnabled = false; Session["ExamRegistrationId"] = id; var examRegistration = dbView.ViewExamRegistration.First(w => w.ExamRegistrationId == id); var drivingCategory = db.DrivingCategory.First(f => f.Id == examRegistration.DrivingCategoryId); var candidate = dbView.ViewCandidates.First(w => w.CandidateId == examRegistration.CandidateId); ViewBag.Candidate = candidate; AssessmentSheetViewModel data = new AssessmentSheetViewModel(); data.ExamTypeId = (int)examRegistration.ExamTypeId; data.ExamRegistrationId = (int)id; data.Theory = new AssessmentSheetTheoryViewModel(); data.Polygon = new List<AssessmentSheetPolygonCityViewModel>(); data.City = new List<AssessmentSheetPolygonCityViewModel>(); switch ((int)examRegistration.ExamTypeId) { case 1: ViewBag.Title = "Оценувачки лист - теорија"; GetAssessmentSheetTheory(data, drivingCategory, examRegistration, (int)id); break; case 2: ViewBag.Title = "Оценувачки лист - полигон"; GetAssessmentSheetPolygon(data, drivingCategory, examRegistration, (int)id); break; case 3: ViewBag.Title = "Оценувачки лист - град"; GetAssessmentSheetCity(data, drivingCategory, examRegistration, (int)id); break; } return View(data); }
private void AppearOnTheExamCity(int id, AssessmentSheetViewModel assessmentSheet) { var examRegistrationErrors = db.ExamRegistrationError.Where(w => w.ExamRegistrationId == id); if (examRegistrationErrors.Any()) { // Има претходни записи со грешки од испитото во базата var examRegistrationErrorsIds = examRegistrationErrors.Select(s => s.ErrorTypeId); CreateExamRegistrationError(id, assessmentSheet.City.Where(w => w.isChecked && !examRegistrationErrorsIds.Contains(w.questionId)).ToList()); CleanExamRegistrationError(assessmentSheet.City, examRegistrationErrors); } else { //Нема претходни записи во грешки од испит во базата CreateExamRegistrationError(id, assessmentSheet.City.Where(w => w.isChecked).ToList()); } CheckNegativePoints(id, assessmentSheet.City, assessmentSheet.AllowedNegativePoints, assessmentSheet.ExamRegistrationId); }
private void AppearOnTheExamTheory(int id, AssessmentSheetViewModel assessmentSheet) { var examRegistration = db.ExamRegistration.First(f => f.Id == assessmentSheet.ExamRegistrationId); if (assessmentSheet.Theory.NegativePoints > assessmentSheet.AllowedNegativePoints) { //Не положил examRegistration.StatusId = (int)ExamRegStatusEnum.NotPassed; db.Entry(examRegistration).State = EntityState.Modified; GenerateReport(id, assessmentSheet.Theory.NegativePoints, false); } else { //Положил examRegistration.StatusId = (int)ExamRegStatusEnum.Passed; db.Entry(examRegistration).State = EntityState.Modified; GenerateReport(id, assessmentSheet.Theory.NegativePoints, true); } }
private void NotAppearOnTheExam(int id, AssessmentSheetViewModel assessmentSheet) { var examRegistration = db.ExamRegistration.First(f => f.Id == assessmentSheet.ExamRegistrationId); examRegistration.StatusId = (int)ExamRegStatusEnum.NotAppear; db.Entry(examRegistration).State = EntityState.Modified; var examRegistrationErrors = db.ExamRegistrationError.Where(w => w.ExamRegistrationId == id); if (examRegistrationErrors.Any()) { foreach (var e in examRegistrationErrors) { db.ExamRegistrationError.Remove(e); } } RemoveReport(id); }
public void SaveAssessmentSheetCity(int id, AssessmentSheetViewModel assessmentSheet) { if (assessmentSheet.NotAppearOnTheExam) { //Не се појави на испит NotAppearOnTheExam(id, assessmentSheet); } else { // Се појавил на испит AppearOnTheExamCity(id, assessmentSheet); } }
public void GetAssessmentSheetCity(AssessmentSheetViewModel data, DrivingCategory drivingCategory, ViewExamRegistration examRegistration, int id) { data.AllowedNegativePoints = drivingCategory.AllowedNegativePracticle; data.NotAppearOnTheExam = examRegistration.ExamRegistrationStatusId == 4; data.City = new List<AssessmentSheetPolygonCityViewModel>(); if (drivingCategory.Category.Trim().Equals("А") || drivingCategory.Category.Trim().Equals("A1")) { CreateQuestionListPolygonCity(id, "А кат", data.City); } else { CreateQuestionListPolygonCity(id, "бр2", data.City); } }
public void GetAssessmentSheetTheory(AssessmentSheetViewModel data, DrivingCategory drivingCategory, ViewExamRegistration examRegistration, int id) { data.AllowedNegativePoints = drivingCategory.AllowedNegativeTheory; data.NotAppearOnTheExam = examRegistration.ExamRegistrationStatusId == 4; data.Theory = new AssessmentSheetTheoryViewModel(); if (db.Report.Any(a => a.ExamRegistrationId == id)) { var existingReport = db.Report.First(f => f.ExamRegistrationId == id); data.Theory.NegativePoints = (int)existingReport.NegativePoints; } else { data.Theory.NegativePoints = 0; } }