Ejemplo n.º 1
0
 public MainWindowVM()
 {
     Examples = new ExamplesVM();
     Tests    = new TestsVM();
 }
Ejemplo n.º 2
0
        public async Task <IActionResult> Create([Bind("Id,Student,Period,Data,QuestionsNumber")] TestsVM testVM)
        {
            if (ModelState.IsValid)
            {
                Random rnd  = new Random();
                Test   test = new Test();

                /* Student */
                int selectedStudent = 0;
                int.TryParse(testVM.Student, out selectedStudent);
                var student = _context.Students.Where(w => w.Id == selectedStudent).FirstOrDefault();

                /* Period */
                int selectedPeriod = 0;
                int.TryParse(testVM.Period, out selectedPeriod);
                var period = _context.Periods.Where(w => w.Id == selectedPeriod).FirstOrDefault();

                /* Test */
                test.Student = student;
                test.Period  = period;
                test.Data    = testVM.Data;

                /* Subjects */
                var periodSubjects = period.PeriodSubjects.FindAll(w => w.Period == period);

                List <Subject> subsList = new List <Subject>();
                foreach (var subject in periodSubjects)
                {
                    subsList.Add(subject.Subject);
                }
                Subject[] subjects = subsList.ToArray();

                int questionBySub = testVM.QuestionsNumber / subjects.Length;

                Question[] questions = new Question[questionBySub];

                List <Question> questionsList = new List <Question>();
                for (var i = 0; i < subjects.Length; i++)
                {
                    for (var j = 0; j < questionBySub; j++)
                    {
                        int r = rnd.Next(subjects[i].Questions.Count);
                        questionsList.Add(subjects[i].Questions[r]);
                    }
                }

                _context.Add(test);

                test.TestQuestions = new List <TestQuestion>();

                foreach (var q in questionsList)
                {
                    test.TestQuestions.Add(new Models.Entity.TestQuestion {
                        Question = q
                    });
                }

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(testVM));
        }