//Поиск ВКР по студенту public VKR getVKRbyStudent(int studentid) { VKR vkr = new VKR(); Connect(); loger.Info("Вызван метод " + new StackTrace(false).GetFrame(0).GetMethod().Name); try { SqlCommand cmd = new SqlCommand("SELECT * FROM VKR WHERE StudentId=@stId", Connection); cmd.Parameters.Add(new SqlParameter("@stId", studentid)); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { vkr.id = Convert.ToInt32(reader["Id"]); vkr.theme = Convert.ToString(reader["Theme"]); vkr.studentId = Convert.ToInt32(reader["StudentId"]); vkr.teacherId = Convert.ToInt32(reader["PrepodId"]); } return(vkr); } catch (Exception e) { loger.Error("Произошла ошибка поиске ВКР"); loger.Trace(e.StackTrace); } finally { Disconnect(); } return(vkr); }
//Запрос только что добавленный ВКР public VKR getNewVKR(int studentId, int teacherId, int PlanId) { VKR newVKR = new VKR(); Connect(); loger.Info("Вызван метод " + new StackTrace(false).GetFrame(0).GetMethod().Name); try { SqlCommand cmd = new SqlCommand("SELECT Id FROM VKR WHERE StudentId = @StudentId AND PrepodId = @PrepodId AND PlanId = @PlanId", Connection); cmd.Parameters.Add(new SqlParameter("@StudentId", studentId)); cmd.Parameters.Add(new SqlParameter("@PrepodId", teacherId)); cmd.Parameters.Add(new SqlParameter("@PlanId", PlanId)); SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { int id = Convert.ToInt32(reader["Id"]); newVKR.id = id; } loger.Info(newVKR.id); } catch (Exception e) { loger.Error("Произошла ошибка при добавлении поля ответа"); loger.Trace(e.StackTrace); } finally { Disconnect(); } return(newVKR); }
//Предоставление информации о ВКР public ActionResult showVKRInfo(int id) { VKR vkr = vkrDAO.getVKRbyId(id); List <Answer> answers = aDAO.getAnswersByVKR(id); ViewAnswerAndVKR vAVKR = new ViewAnswerAndVKR(answers, vkr); return(View(vAVKR)); }
//Стартовая страница public ActionResult Index() { if (User.IsInRole("Student")) { int id = sDAO.getStudentId(User.Identity.Name); Console.WriteLine(id); VKR vkr = vDAO.getVKRbyStudent(id); ViewAnswerAndVKR vav = new ViewAnswerAndVKR(vkr, id); List <Answer> answers = aDAO.getAnswersByVKR(vkr.id); vav.answers = answers; return(View(vav)); } else if (User.IsInRole("Teacher")) { int id = tDAO.getTeacherId(User.Identity.Name); ViewAnswerAndVKR vav = new ViewAnswerAndVKR(aDAO.getLastAnswers(id), id); return(View(vav)); } else if (User.IsInRole("Decan")) { List <Plan> plans = pDAO.showPlansByStatus(6); ViewAnswerAndVKR vav = new ViewAnswerAndVKR(plans); List <Kafedra> kafedras = kDAO.getAllKafedras(); vav.kafedras = kafedras; return(View(vav)); } else { if (User.IsInRole("Leiter")) { List <Kafedra> kafedras = kDAO.getAllKafedras(); ViewAnswerAndVKR vav = new ViewAnswerAndVKR(kafedras); aDAO.checkAllAnswers(); return(View(vav)); } else { return(View()); } } }
public ActionResult addVKR([Bind(Exclude = "ID")] VKR vkr, int studentId, int gruppaId) { VKR newVKR = vkr; newVKR.studentId = studentId; int groupId = gDAO.getGroupInfo(gruppaId).id; int teacherid = tDAO.getTeacherId(User.Identity.Name); int planId = pDAO.showPlanInfoByGropId(groupId).id; newVKR.teacherId = teacherid; newVKR.planId = planId; if (vDAO.add(newVKR)) { return(RedirectToAction("getStudentInfo", new { id = studentId })); } else { return(View("addVKR")); } }
//Добавление ВКР //Необходимо добавить в БД в Таблице ВКР ссылку на План-График public bool add(VKR vkr) { bool result = true; loger.Info("Вызван метод " + new StackTrace(false).GetFrame(0).GetMethod().Name); Connect(); try { SqlCommand cmd = new SqlCommand("INSERT INTO VKR(Theme, StudentId, PrepodId, PlanId) VALUES (@Theme, @StudentId, @PrepodId, @PlanId)", Connection); cmd.Parameters.Add(new SqlParameter("@Theme", vkr.theme)); cmd.Parameters.Add(new SqlParameter("@StudentId", vkr.studentId)); cmd.Parameters.Add(new SqlParameter("@PrepodId", vkr.teacherId)); cmd.Parameters.Add(new SqlParameter("@PlanId", vkr.planId)); cmd.ExecuteNonQuery(); loger.Info(vkr.theme + " " + vkr.teacherId + " " + vkr.studentId + " " + vkr.planId); StepDAO sDAO = new StepDAO(); int tempId = getNewVKR(vkr.studentId, vkr.teacherId, vkr.planId).id; List <Step> steps = sDAO.getStepsByPlanId(vkr.planId); AnswerDAO aDAO = new AnswerDAO(); foreach (Step item in steps) { aDAO.add(new Answer(tempId, item.id)); } StudentDAO stDAO = new StudentDAO(); result = stDAO.setStudentVKRstat(vkr.studentId, true); } catch (Exception e) { result = false; loger.Error("Произошла ошибка при ВКР"); loger.Trace(e.StackTrace); } finally { Disconnect(); } return(result); }