public ActionResult Create( int courseId, CourseInstanceCreateEdit newCourseInstance )
        {
            newCourseInstance.BaseCourse = db.Course.Where( c => c.ID == courseId ).FirstOrDefault();
            if( newCourseInstance.Year < 0 || newCourseInstance.BaseCourse == null ) {
                return View( newCourseInstance );
            }
            List<Person> studentsList = new List<Person>();
            for( int i = 0; i < newCourseInstance.Chosen_Students.Count(); i++ ) {
                if( newCourseInstance.Chosen_Students[i] ) {
                    string id = newCourseInstance.Students[i].Id;
                    Person student = db.Users.Where( p => p.Id == id ).FirstOrDefault();
                    studentsList.Add( student );
                }
            }

            var courseInstance = new CourseInstance {
                Year = newCourseInstance.Year,
                AdditionalDescription = newCourseInstance.AdditionalDescription,
                BaseCourse = newCourseInstance.BaseCourse,
                Place = newCourseInstance.Place,
                Report_Date = newCourseInstance.Report_Date,
                Students = studentsList,
            };

            db.CourseInstance.Add( courseInstance );
            db.SaveChanges();
            return RedirectToAction( "course", "Courses", new { id = courseId } );
        }
        public ActionResult Edit( int courseId, int id, bool cameFromCoursePage, CourseInstanceCreateEdit editedCourseInstance )
        {
            if( editedCourseInstance.Year < 0 || editedCourseInstance.BaseCourse == null ) {
                return View( editedCourseInstance );
            }

            List<Person> studentsList = new List<Person>();

            for( int i = 0; i < editedCourseInstance.Chosen_Students.Count(); i++ ) {
                if( editedCourseInstance.Chosen_Students[i] ) {
                    string studentId = editedCourseInstance.Students[i].Id;
                    Person student = db.Users.Where( p => p.Id == studentId ).FirstOrDefault();
                    studentsList.Add( student );
                }
            }
            var courseInstance = db.CourseInstance.Where( c => c.ID == editedCourseInstance.ID ).First();
            if( courseInstance == null ) {
                return HttpNotFound();
            }
            courseInstance.Year = editedCourseInstance.Year;
            courseInstance.AdditionalDescription = editedCourseInstance.AdditionalDescription;
            courseInstance.BaseCourse = db.Course.Where( c => c.ID == editedCourseInstance.BaseCourse.ID ).First();
            courseInstance.Place = editedCourseInstance.Place;
            courseInstance.Report_Date = editedCourseInstance.Report_Date;

            courseInstance.Students.Clear();
            courseInstance.Students = studentsList;

            db.SaveChanges();
            if( cameFromCoursePage ) {
                return RedirectToAction( "course", "Courses", new { id = courseId } );
            } else {
                return RedirectToAction( "CourseInstance", new { id = id } );
            }
        }