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" }));
        }
Esempio n. 2
0
        // 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()));
            }
        }
Esempio n. 3
0
        // 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(тесты));
        }
Esempio n. 8
0
        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(тесты));
        }
Esempio n. 10
0
        [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()));
        }
Esempio n. 11
0
        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()));
        }
Esempio n. 13
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(вопросы));
        }