public async Task <ActionResult> DeleteConfirmed(int id) { Тесты тесты = await db.Тесты.FindAsync(id); //получаем id для удаления теста var questDelete = await(from q in db.Вопросы where q.id_Теста == тесты.id_теста select q).ToListAsync(); //вопросы в теме List <Ответы> answerDelete = new List <Ответы>(); //здесь сохраним ответы к вопросам, которые удалим foreach (var q in questDelete) { var ansD = await(from a in db.Ответы where a.id_Вопроса == q.id_вопроса select a).ToListAsync(); //получили все ответы для каждого вопроса foreach (var aD in ansD) { answerDelete.Add(aD); //добавляем ответы в список } } foreach (var a in answerDelete) { db.Ответы.Remove(a); //удаляем ответы } foreach (var q in questDelete) { db.Вопросы.Remove(q); //удаляем вопросы } db.Тесты.Remove(тесты); //удаляем тему await db.SaveChangesAsync(); return(RedirectToAction("Index", new { razdel = тесты.Id_Раздела.ToString(), redactor = "redactor" })); }
// GET: Вопросы public async Task <ActionResult> Index(string redactor = "", string topic = "") { if (redactor != "") { ViewBag.User = "******"; } int id_Topic = 0; if (topic != "") { id_Topic = Convert.ToInt32(topic); Тесты тема = db.Тесты.Find(id_Topic); ViewBag.аздел = тема.Id_Раздела; ViewBag.НазваниеТеста = тема.Название_темы_теста.Replace(" ", ""); ViewBag.IdТеста = id_Topic; SelectList ans1 = null; var вопросы = db.Вопросы.Include(в => в.Тесты).Include(в => в.Ответы); вопросы = (from v in db.Вопросы where v.id_Теста == id_Topic select v).Include(v => v.Ответы); вопросы = QuestionChoose(вопросы, ref ans1); return(View(await вопросы.ToListAsync())); } else { int q = 1; var вопросы = db.Вопросы.Include(в => в.Тесты).Include(в => в.Ответы); foreach (var temp in вопросы) { temp.Текст_вопроса = q.ToString() + " " + temp.Текст_вопроса; q++; } return(View(await вопросы.ToListAsync())); } }
// GET: Вопросы/Create public ActionResult Create(int?id) { Тесты тест = db.Тесты.Find(id); //находим тему, в которой этот вопрос ViewBag.Тест = тест.id_теста; ViewBag.id_Теста = new SelectList(db.Тесты, "id_теста", "Название_темы_теста"); ViewBag.аздел = тест.Id_Раздела; return(View()); }
public async Task <ActionResult> Index(int razdel, Тесты item, int?Units) { азделы разделы = await db.азделы.FindAsync(razdel); //получаем раздел по Id ViewBag.razdelName = разделы.Название_раздела.Replace(" ", ""); //передаем название раздела в представлнение ViewBag.razdel = razdel.ToString(); //Передаем Id раздела в представление string nameTest = item.Название_темы_теста; ViewBag.НазваниеТеста = nameTest.Replace(" ", ""); //передаем название теста в представление int selectedIndex = 0; SelectList подразделения = new SelectList(db.Подразделение, "Id_подразделения", "Название_подразделения", selectedIndex); //для передачи в представление списка подразделений ViewBag.Подразделения = подразделения; int userТестId = 0; foreach (var t in db.Тесты) //определяем id выбранного теста { if (t.Название_темы_теста == nameTest) { userТестId = t.id_теста; } } ViewBag.id_topic = userТестId; Тесты тема = await db.Тесты.FindAsync(userТестId); IQueryable <езультат_теста> users; if (Units != null) { users = (from u in db.езультат_теста where u.id_Теста == тема.id_теста && u.Пользователи.id_подразделения == Units select u); //выбор тех, кто уже сдавал теорию } else { users = (from u in db.езультат_теста where u.id_Теста == тема.id_теста select u); //выбор тех, кто уже сдавал теорию } List <Пользователи> пользователи = new List <Пользователи>(); foreach (var temp in users) { // пользователи.Add(db.Пользователи.Find(temp.id_User)); пользователи.Add(temp.Пользователи); } var sortedUsers = from u in пользователи orderby u.Фамилия select u; //сортируем пользователей по алфавиту /* List<string> status = new List<string>(); * status.Add("Не сдавалось"); * status.Add("Не сдано"); * status.Add("Сдано"); * SelectList statusPractice = new SelectList(status, status[0]); //для передачи в представление списка подразделений * ViewBag.statusPractice = statusPractice;*/ return(View(sortedUsers)); }
// GET: Тесты/Details/5 public async Task <ActionResult> Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Тесты тесты = await db.Тесты.FindAsync(id); if (тесты == null) { return(HttpNotFound()); } return(View(тесты)); }
// GET: Практика public ActionResult Index(int topic = 0, int units = -1, string nameUser = "") { ViewBag.id_topic = topic; ViewBag.nameUser = nameUser; ViewBag.id_units = units; int selectedIndex = 0; SelectList подразделения = new SelectList(db.Подразделение, "Id_подразделения", "Название_подразделения", selectedIndex); //для передачи в представление списка подразделений ViewBag.Подразделения = подразделения; Тесты тема = db.Тесты.Find(topic); ViewBag.razdel = (тема.Id_Раздела).ToString(); ViewBag.НазваниеТеста = тема.Название_темы_теста.Replace(" ", ""); IQueryable <езультат_теста> users; if (units != -1) //если подразделение указано { if (nameUser != "") //если указана фамилия { users = (from u in db.езультат_теста where u.id_Теста == тема.id_теста && u.Пользователи.id_подразделения == units && u.Пользователи.Фамилия.Contains(nameUser) select u); //выбор тех, кто уже сдавал теорию } else //если поле для фамилии пусто { users = (from u in db.езультат_теста where u.id_Теста == тема.id_теста && u.Пользователи.id_подразделения == units select u); //выбор тех, кто уже сдавал теорию } } else // если подразделение не указано то выводим всех пользователй { if (nameUser != "") //если указана фамилия { users = (from u in db.езультат_теста where u.id_Теста == тема.id_теста && u.Пользователи.Фамилия.Contains(nameUser) select u); //выбор тех, кто уже сдавал теорию } else { users = (from u in db.езультат_теста where u.id_Теста == тема.id_теста select u); //выбор тех, кто уже сдавал теорию } } List <Пользователи> пользователи = new List <Пользователи>(); foreach (var temp in users) { пользователи.Add(temp.Пользователи); // пользователи.Add(db.Пользователи.Find(temp.id_User)); } var sortedUsers = from u in пользователи orderby u.Фамилия select u; //сортируем пользователей по алфавиту return(View(sortedUsers)); }
public async Task <ActionResult> Edit([Bind(Include = "id_теста,Название_темы_теста,Количество_вопросов,Id_Раздела")] Тесты тесты) { if (ModelState.IsValid) { тесты.Название_темы_теста = тесты.Название_темы_теста.TrimEnd(' '); var temp = from v in db.Тесты where v.Название_темы_теста.Replace(" ", "").ToLower() == тесты.Название_темы_теста.Replace(" ", "").ToLower() select v; if (temp.Count() == 0) //проверяем, есть ли тема с таки же именем, если нет, то добавляем { db.Entry(тесты).State = EntityState.Modified; await db.SaveChangesAsync(); } return(RedirectToAction("Index", new { razdel = тесты.Id_Раздела.ToString(), redactor = "redactor" })); } ViewBag.id_Темы = new SelectList(db.азделы, "id_Раздела", "Название_раздела", тесты.Id_Раздела); return(View(тесты)); }
public async Task <ActionResult> DeleteConfirmed(int id) { Вопросы вопросы = await db.Вопросы.FindAsync(id); string id_Topic = вопросы.id_Теста.ToString(); var answDelete = await(from answ in db.Ответы where answ.id_Вопроса == вопросы.id_вопроса select answ).ToListAsync(); //ответы к вопросам foreach (var aD in answDelete) { db.Ответы.Remove(aD); //удаляем ответы к вопросам } db.Вопросы.Remove(вопросы); //удаляем вопрос Тесты тесты = await db.Тесты.FindAsync(вопросы.id_Теста); тесты.Количество_вопросов = тесты.Количество_вопросов - 1; await db.SaveChangesAsync(); return(RedirectToAction("Index", new { topic = id_Topic, redactor = "redactor" })); }
// GET: Тесты/Edit/5 public async Task <ActionResult> Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Тесты тесты = await db.Тесты.FindAsync(id); if (тесты == null) { return(HttpNotFound()); } var section = (from t in db.азделы where t.id_Раздела == тесты.Id_Раздела select t).ToList(); SelectList разделы = new SelectList(section, "id_Раздела", "Название_раздела"); //пока что не нужно (для выпадающего списка разделов) ViewBag.азделы = разделы; ViewBag.id_Темы = new SelectList(db.азделы, "id_Раздела", "Название_раздела", тесты.Id_Раздела); return(View(тесты)); }
[HttpPost] // доступные вопросы по выбранному тесту public async Task <ActionResult> Index(Тесты item, string redactor, string id_user, string Data) { if (id_user != "") { int id_user1 = Convert.ToInt32(id_user); ViewBag.Id_user = id_user1; ViewBag.Data = Data; } string nameTest = item.Название_темы_теста; ViewBag.НазваниеТеста = nameTest; //передаем название теста в представление int userТестId = 0; foreach (var t in db.Тесты) //определяем id выбранного теста { if (t.Название_темы_теста == nameTest) { userТестId = t.id_теста; } } Тесты тема = db.Тесты.Find(userТестId); SelectList ans = null; ViewBag.аздел = тема.Id_Раздела; ViewBag.IdТеста = userТестId; var вопросы = db.Вопросы.Include(в => в.Тесты).Include(в => в.Ответы); вопросы = (from v in db.Вопросы where v.id_Теста == userТестId select v).Include(v => v.Ответы); //выбираем вопросы для кокретного теста по id теста if (redactor == "redactor") { ViewBag.User = "******"; } вопросы = QuestionChoose(вопросы, ref ans); return(View(await вопросы.ToListAsync())); }
private void button1_Click(object sender, EventArgs e) { Тесты тесты = new Тесты(); тесты.Тест_метода_Квадрат_неотрицательных_четвертая_степень_отрицательных(); }
[HttpPost] // доступные Темы в разделе public async Task <ActionResult> Index(string razdel, int?id_user, string redactor, string practice, string Data, Тесты тесты) { if (id_user != null) { ViewBag.Id_user = id_user.ToString(); ViewBag.Data = Data; } int id_Section = 0; if (razdel != null) { id_Section = Convert.ToInt32(razdel); } else { id_Section = тесты.Id_Раздела; } ViewBag.IdРаздела = id_Section; if (redactor == "redactor") //если зашли с учетки редактора, то нужно меню для него { ViewBag.Id_user = "******"; } else if (practice == "practice") //если зашли с учетки Практика, то нужно меню для него { ViewBag.Id_user = "******"; } foreach (var e in db.азделы) //получаем имя раздела по его id { if (e.id_Раздела == id_Section) { ViewBag.НазваниеРаздела = e.Название_раздела; //передаем имя раздела в представление } } var тесты1 = (db.Тесты.Include(в => в.азделы).Include(в => в.Вопросы).Where(в => в.Id_Раздела == id_Section)); // список тестов по соответствующей темы return(View(await тесты1.ToListAsync())); }
public async Task <ActionResult> Create(string[] InputVariant, string RadioB, string [] Checkbox, int id_Теста, ВопросОтветРедактор вопросОтветРедактор, string Тип_ответа) { if (Тип_ответа != null) { вопросОтветРедактор.вопросыРедактор.Тип_ответа = Тип_ответа.Replace(" ", ""); } Вопросы вопросы = вопросОтветРедактор.вопросыРедактор; string variant = "", def = "", correct = ""; if (Тип_ответа.Replace(" ", "") != "Несколько" && Тип_ответа.Replace(" ", "") != "Выбор") { correct = вопросОтветРедактор.Правильный_ответ.Replace("\r\n", " "); correct = вопросОтветРедактор.Правильный_ответ.Replace(" ", ""); correct = вопросОтветРедактор.Правильный_ответ.TrimEnd(' '); } else if (Тип_ответа.Replace(" ", "") == "Выбор") { correct = InputVariant[Convert.ToInt32(RadioB)].Replace("\r\n", " ").Replace(" ", "").TrimEnd(' '); foreach (var variantInput in InputVariant) { variant += variantInput + ";"; } } else if (Тип_ответа.Replace(" ", "") == "Несколько") { List <string> VariantMin = new List <string>(); foreach (var variantInput in InputVariant) { variant += variantInput + ";"; } for (int i = 0; i < Checkbox.Count(); i++) { VariantMin.Add(Checkbox[i]); if (Checkbox[i] == "true") { i++; //убрали лишние false } } for (int i = 0; i < VariantMin.Count(); i++) { if (VariantMin[i] == "true") { correct += InputVariant[i] + ";"; } } correct = correct.Replace("\r\n", " ").Replace(" ", "").TrimEnd(' '); } if (вопросОтветРедактор.Понятия != null) { def = вопросОтветРедактор.Понятия.Replace("\r\n", " "); def = вопросОтветРедактор.Понятия.Replace(" ", ""); def = вопросОтветРедактор.Понятия.TrimEnd(' '); } if (вопросОтветРедактор.вопросыРедактор.Текст_вопроса != null && вопросОтветРедактор.вопросыРедактор.Тип_ответа != null) { try { вопросы.id_Теста = id_Теста; Ответы ответы = new Ответы(); вопросы.Тип_ответа = вопросы.Тип_ответа.Replace(" ", ""); вопросы.Текст_вопроса = вопросы.Текст_вопроса.Replace("\r\n", " "); вопросы.Текст_вопроса = вопросы.Текст_вопроса.Replace(" ", ""); вопросы.Текст_вопроса = вопросы.Текст_вопроса.TrimEnd(' '); db.Вопросы.Add(вопросы); Тесты тесты = await db.Тесты.FindAsync(вопросы.id_Теста); тесты.Количество_вопросов = тесты.Количество_вопросов + 1; await db.SaveChangesAsync(); ProcessingTypeAnswer(вопросы, "create", variant, def, correct); return(RedirectToAction("Index", new { topic = вопросы.id_Теста.ToString(), redactor = "redactor" })); } catch (DbEntityValidationException ex) { foreach (DbEntityValidationResult validationError in ex.EntityValidationErrors) { Response.Write("Object: " + validationError.Entry.Entity.ToString()); Response.Write(" "); foreach (DbValidationError err in validationError.ValidationErrors) { Response.Write(err.ErrorMessage + " "); } } } } ViewBag.id_Теста = new SelectList(db.Тесты, "id_теста", "Название_темы_теста", вопросы.id_Теста); return(View(вопросы)); }