Exemple #1
0
        // 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(вопросОтветРедактор));
        }
Exemple #2
0
        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(вопросОтветРедактор.вопросыРедактор));
        }
Exemple #3
0
        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(вопросы));
        }