public MainWindowVM() { Examples = new ExamplesVM(); Tests = new TestsVM(); }
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)); }