// GET: Students/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }


            PeriodStudent periodStudent = new PeriodStudent();

            periodStudent = await _context.PeriodStudents.Where(w => w.Student.Id == id).FirstAsync();

            PeriodStudentVM periodStudentVM = new PeriodStudentVM();

            periodStudentVM.Id      = periodStudent.Student.Id;
            periodStudentVM.Student = periodStudent.Student.Name;
            periodStudentVM.Period  = periodStudent.Period.Name;

            if (periodStudent == null)
            {
                return(NotFound());
            }

            ViewBag.Periods = _context.Periods.Select(s => new SelectListItem()
            {
                Selected = (s.Id == periodStudent.Period.Id), Text = s.Name, Value = s.Name
            }).ToList();
            return(View(periodStudentVM));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Student,Period")] PeriodStudentVM periodStudent)
        {
            if (id != periodStudent.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var student = new Student();
                    student.Id   = periodStudent.Id;
                    student.Name = periodStudent.Student;

                    _context.Update(student);

                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!StudentExists(periodStudent.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(periodStudent));
        }
        public async Task <IActionResult> Create([Bind("Id,Student,Period")] PeriodStudentVM periodStudent)
        {
            if (ModelState.IsValid)
            {
                var student = new Student();
                student.Name = periodStudent.Student;

                int selectedPeriod = 0;
                int.TryParse(periodStudent.Period, out selectedPeriod);

                var period = _context.Periods.Where(s => s.Id == selectedPeriod).FirstOrDefault();

                _context.Add(student);
                period.PeriodStudent.Add(new Models.Entity.PeriodStudent {
                    Student = student
                });

                await _context.SaveChangesAsync();

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