public async Task <IActionResult> Create([Bind("StudentID,CourseID,Paid,Active")] CourseSelection courseSelection) { if (ModelState.IsValid) { // Define an object of CourseSelectionOwing and set the details CourseSelectionOwing courseSelectionOwing = new CourseSelectionOwing(); courseSelectionOwing.StudentID = courseSelection.StudentID; courseSelectionOwing.CourseID = courseSelection.CourseID; courseSelectionOwing.Active = true; var course = await _context.Courses.FindAsync(courseSelection.CourseID); if (course == null) { courseSelectionOwing.Owing = 0; } else { courseSelectionOwing.Owing = course.Cost; } // Add entry for course selection _context.Add(courseSelection); // Add entry for course selection owing _context.Add(courseSelectionOwing); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Create), courseSelection.StudentID)); } if (courseSelection.StudentID == 0) { return(NotFound()); } var student = await GetStudentWithCourseSelections(courseSelection.StudentID); if (student == null) { return(NotFound()); } var allCourses = await _context.Courses.Where(m => m.Active == true).ToListAsync(); var availableCourses = new List <Course>(); // Get available courses for enrollment foreach (var course in allCourses) { if (!student.CourseSelections.Any(m => (m.CourseID == course.CourseID && m.Active))) { availableCourses.Add(course); } } ViewData["CourseID"] = new SelectList(availableCourses, "CourseID", "CourseName"); return(View(new CourseSelection { Student = student })); }
public static void Initialize(AccountingContext context) { context.Database.EnsureCreated(); // Look for any students if (context.Students.Any()) { return; // DB has been seeded } var students = new Student[] { new Student { Name = "Guobin Li", Age = 31, Active = true }, new Student { Name = "John", Age = 32, Active = true }, new Student { Name = "Alex", Age = 18, Active = true }, }; foreach (Student s in students) { context.Students.Add(s); } context.SaveChanges(); var courses = new Course[] { new Course { CourseName = "Math", Cost = 1000.00, Active = true }, new Course { CourseName = "Internet and Website Design", Cost = 860.00, Active = true }, new Course { CourseName = "Web Application Development", Cost = 1000.00, Active = true }, new Course { CourseName = "Database Design and Development", Cost = 1200.00, Active = true }, new Course { CourseName = "Advanced Program Development", Cost = 1400.00, Active = true }, new Course { CourseName = "Network Programming", Cost = 1600.00, Active = true }, }; foreach (Course c in courses) { context.Courses.Add(c); } context.SaveChanges(); var courseSelections = new CourseSelection[] { new CourseSelection { StudentID = 1, CourseID = 2, Paid = 860.00, Active = true }, new CourseSelection { StudentID = 1, CourseID = 3, Paid = 1000.00, Active = true }, new CourseSelection { StudentID = 1, CourseID = 4, Paid = 1200.00, Active = true }, new CourseSelection { StudentID = 1, CourseID = 5, Paid = 1400.00, Active = true }, new CourseSelection { StudentID = 1, CourseID = 6, Paid = 1600.00, Active = true }, new CourseSelection { StudentID = 2, CourseID = 1, Paid = 800.00, Active = true }, new CourseSelection { StudentID = 2, CourseID = 2, Paid = 860.00, Active = true }, new CourseSelection { StudentID = 3, CourseID = 3, Paid = 0.00, Active = true }, new CourseSelection { StudentID = 3, CourseID = 5, Paid = 0.00, Active = true }, new CourseSelection { StudentID = 3, CourseID = 4, Paid = 1500.00, Active = true }, }; foreach (CourseSelection c in courseSelections) { context.CourseSelections.Add(c); } context.SaveChanges(); var courseSelectionOwings = new CourseSelectionOwing[] { new CourseSelectionOwing { StudentID = 1, CourseID = 2, Owing = 0, Active = true }, new CourseSelectionOwing { StudentID = 1, CourseID = 3, Owing = 0, Active = true }, new CourseSelectionOwing { StudentID = 1, CourseID = 4, Owing = 0, Active = true }, new CourseSelectionOwing { StudentID = 1, CourseID = 5, Owing = 0, Active = true }, new CourseSelectionOwing { StudentID = 1, CourseID = 6, Owing = 0, Active = true }, new CourseSelectionOwing { StudentID = 2, CourseID = 1, Owing = 200.00, Active = true }, new CourseSelectionOwing { StudentID = 2, CourseID = 2, Owing = 0, Active = true }, new CourseSelectionOwing { StudentID = 3, CourseID = 5, Owing = 1400.00, Active = true }, new CourseSelectionOwing { StudentID = 3, CourseID = 3, Owing = 1000.00, Active = true }, new CourseSelectionOwing { StudentID = 3, CourseID = 4, Owing = -300.00, Active = true }, }; foreach (CourseSelectionOwing c in courseSelectionOwings) { context.CourseSelectionOwings.Add(c); } context.SaveChanges(); }