// 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()); } ВопросОтветРедактор вопросОтветРедактор = new ВопросОтветРедактор(); ViewBag.аздел = вопросы.Тесты.Id_Раздела; ViewBag.Тема = вопросы.id_Теста; int selected = вопросы.id_Теста; ViewBag.id_Теста = new SelectList(db.Тесты.Where(a => a.id_теста == вопросы.id_Теста), "id_теста", "Название_темы_теста", selected); ViewBag.ТипОтвета = вопросы.Тип_ответа.Replace(" ", ""); if ((вопросы.Тип_ответа.Replace(" ", "") == "Ввод") || (вопросы.Тип_ответа.Replace(" ", "") == "Разрыв")) { var answerCorrect = from v in db.Ответы where v.id_Вопроса == вопросы.id_вопроса select v; foreach (var t in answerCorrect) { if (t.Флаг_правильного_ответа) { вопросОтветРедактор.Правильный_ответ = t.Текст_ответа.Replace(" ", "").TrimStart(' ').TrimEnd(' '); ViewBag.ВерныйОтвет = вопросОтветРедактор.Правильный_ответ; break; } } } else if ((вопросы.Тип_ответа.Replace(" ", "") == "Выбор") || (вопросы.Тип_ответа.Replace(" ", "") == "Несколько")) { string variantStr = ""; string correctStr = ""; var answer = from v in db.Ответы where v.id_Вопроса == вопросы.id_вопроса select v; foreach (var variant in answer) { variantStr = variantStr + variant.Текст_ответа.Replace(" ", "").TrimStart(' ').TrimEnd(' ') + ", "; if (variant.Флаг_правильного_ответа) { correctStr = correctStr + variant.Текст_ответа.Replace(" ", "").TrimStart(' ').TrimEnd(' ') + ", "; } } variantStr = variantStr.Substring(0, variantStr.Length - 2); correctStr = correctStr.Substring(0, correctStr.Length - 2); //убираем лишнюю запятую ViewBag.Варианты = variantStr; вопросОтветРедактор.Варианты_ответов = variantStr; вопросОтветРедактор.Правильный_ответ = correctStr; ViewBag.ВерныйОтвет = correctStr; } else if (вопросы.Тип_ответа.Replace(" ", "") == "Соотношение") { string Def = ""; string CorrectAnsw = ""; var answerS = from v in db.Ответы where (v.id_Вопроса == вопросы.id_вопроса && v.Флаг_подвопроса == true) select v; foreach (var variant in answerS) { Def = Def + variant.Текст_ответа.Replace(" ", "").TrimStart(' ').TrimEnd(' ') + ", "; CorrectAnsw = CorrectAnsw + variant.Правильный_ответ.Replace(" ", "").TrimStart(' ').TrimEnd(' ') + ", "; } Def = Def.Substring(0, Def.Length - 2); CorrectAnsw = CorrectAnsw.Substring(0, CorrectAnsw.Length - 2); //убираем лишнюю запятую вопросОтветРедактор.Понятия = Def; ViewBag.Понятия = Def; вопросОтветРедактор.Правильный_ответ = CorrectAnsw; ViewBag.ВерныйОтвет = CorrectAnsw; } вопросОтветРедактор.вопросыРедактор = вопросы; return(View(вопросОтветРедактор)); }
public async Task <ActionResult> Edit(ВопросОтветРедактор вопросОтветРедактор, string Тип_ответа, int id_Теста) { string variant = "", def = "", correct = ""; if (вопросОтветРедактор.Варианты_ответов != null) { variant = вопросОтветРедактор.Варианты_ответов.Replace("\r\n", " "); variant = вопросОтветРедактор.Варианты_ответов.Replace(" ", ""); variant = вопросОтветРедактор.Варианты_ответов.TrimEnd(' '); } correct = вопросОтветРедактор.Правильный_ответ.Replace("\r\n", " "); correct = вопросОтветРедактор.Правильный_ответ.Replace(" ", ""); correct = вопросОтветРедактор.Правильный_ответ.TrimEnd(' '); if (вопросОтветРедактор.Понятия != null) { def = вопросОтветРедактор.Понятия.Replace("\r\n", " "); def = вопросОтветРедактор.Понятия.Replace(" ", ""); def = вопросОтветРедактор.Понятия.TrimEnd(' '); } if (Тип_ответа != null) { вопросОтветРедактор.вопросыРедактор.Тип_ответа = Тип_ответа.Replace(" ", ""); } if ((вопросОтветРедактор.Правильный_ответ != null) && (вопросОтветРедактор.вопросыРедактор.Текст_вопроса != null) && (вопросОтветРедактор.вопросыРедактор.Тип_ответа != null)) { try { Вопросы editВопрос = await(db.Вопросы.FindAsync(вопросОтветРедактор.вопросыРедактор.id_вопроса)); editВопрос.Текст_вопроса = вопросОтветРедактор.вопросыРедактор.Текст_вопроса.Replace("\r\n", " "); editВопрос.Текст_вопроса = вопросОтветРедактор.вопросыРедактор.Текст_вопроса.Replace(" ", ""); editВопрос.Текст_вопроса = вопросОтветРедактор.вопросыРедактор.Текст_вопроса.Trim(' '); editВопрос.Тип_ответа = вопросОтветРедактор.вопросыРедактор.Тип_ответа; editВопрос.id_Теста = id_Теста; var answerDelete = from a in db.Ответы where a.id_Вопроса == editВопрос.id_вопроса select a; foreach (var aDelete in answerDelete) { db.Ответы.Remove(aDelete); } // editВопрос.Ответы.Clear(); ProcessingTypeAnswer(editВопрос, "edit", variant, def, correct); //добавляем новые ответы db.Entry(editВопрос).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index", new { topic = editВопрос.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(вопросОтветРедактор.вопросыРедактор)); }
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(вопросы)); }