public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } //_context.Courses.Add(Course); //await _context.SaveChangesAsync(); //return RedirectToPage("./Index"); var emptyCourse = new Course(); if (await TryUpdateModelAsync <Course>( emptyCourse, "course", // Prefix for form value. s => s.CourseID, s => s.DepartmentID, s => s.Title)) // , s => s.Credits { _context.Courses.Add(emptyCourse); await _context.SaveChangesAsync(); return(RedirectToPage("./Index")); } // Select DepartmentID if TryUpdateModelAsync fails. //PopulateDepartmentsDropDownList(_context); PopulateDepartmentsDropDownList(_context, emptyCourse.DepartmentID); return(Page()); }
public async Task <IActionResult> OnPostAsync(int?id, string[] selectedCourses) { if (!ModelState.IsValid) { return(Page()); } /* * * //先查找一个连接数据的临时表集合 * var instructorToUpdate= await _context.Instructors * .Include(i => i.OfficeAssignment) * .AsNoTracking() * .FirstOrDefaultAsync(i => i.ID == id); * * * //如果办公室位置为空,则将 Instructor.OfficeAssignment 设置为 null。 当 Instructor.OfficeAssignment 为 null 时,OfficeAssignment 表中的相关行将会删除。 因为OfficeAssignment 设置了外键引用参照Instructor * //看不出哪里设置的???? * if (await TryUpdateModelAsync<Instructor>( * instructorToUpdate, * "Instructor", * i => i.FirstName, i => i.LastName, i => i.HireDate, i => i.OfficeAssignment))//,i=>i.OfficeAssignment.Location 加上这个也不行, 因为这个是更新Instructors数据集? * { * if (string.IsNullOrWhiteSpace(instructorToUpdate.OfficeAssignment?.Location))//用Location因为string.IsNullOrWhiteSpace 接受的是字符串类型???更方便 * { * instructorToUpdate.OfficeAssignment = null; * } * await _context.SaveChangesAsync(); * } * * return RedirectToPage("./Index"); * }*/ var instructorToUpdate = await _context.Instructors .Include(i => i.OfficeAssignment) .Include(i => i.CourseAssignments) .ThenInclude(i => i.Course) .FirstOrDefaultAsync(s => s.ID == id); if (await TryUpdateModelAsync <Instructor>( instructorToUpdate, "Instructor", i => i.FirstName, i => i.LastName, i => i.HireDate, i => i.OfficeAssignment)) { if (String.IsNullOrWhiteSpace( instructorToUpdate.OfficeAssignment?.Location)) { instructorToUpdate.OfficeAssignment = null; } UpdateInstructorCourses(_context, selectedCourses, instructorToUpdate); await _context.SaveChangesAsync(); return(RedirectToPage("./Index")); } UpdateInstructorCourses(_context, selectedCourses, instructorToUpdate); PopulateAssignedCourseData(_context, instructorToUpdate); return(Page()); }
public async Task <IActionResult> OnPostAsync(int?id) { //if (id == null) //{ // return NotFound(); //} //Instructor = await _context.Instructors.FindAsync(id); //if (Instructor != null) //{ // _context.Instructors.Remove(Instructor); // await _context.SaveChangesAsync(); //} //return RedirectToPage("./Index"); Instructor instructor = await _context.Instructors .Include(i => i.CourseAssignments) .SingleAsync(i => i.ID == id); var departments = await _context.Departments .Where(d => d.InstructorID == id) .ToListAsync(); departments.ForEach(d => d.InstructorID = null); _context.Instructors.Remove(instructor); await _context.SaveChangesAsync(); return(RedirectToPage("./Index")); }
public async Task <IActionResult> Create([Bind("FirstMidName,HireDate,LastName,OfficeAssignment")] Instructor instructor, string[] selectedCourses) { if (selectedCourses != null) { instructor.CourseAssignments = new List <CourseAssignment>(); foreach (var course in selectedCourses) { var courseToAdd = new CourseAssignment { InstructorID = instructor.ID, CourseID = int.Parse(course) }; instructor.CourseAssignments.Add(courseToAdd); } } if (ModelState.IsValid) { _context.Add(instructor); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } PopulateAssignedCourseData(instructor); return(View(instructor)); }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } Student = await _context.Students.FindAsync(id); if (Student != null) { _context.Students.Remove(Student); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
// To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { var emptyStudent = new Student(); if (await TryUpdateModelAsync <Student>( emptyStudent, "student", s => s.FirstMidName, s => s.LastName, s => s.EnrollmentDate)) { _context.Students.Add(emptyStudent); await _context.SaveChangesAsync(); return(RedirectToPage("./Index")); } return(Page()); }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } //Course = await _context.Courses.FindAsync(id); Course = await _context.Courses .AsNoTracking() .FirstOrDefaultAsync(m => m.CourseID == id); if (Course != null) { _context.Courses.Remove(Course); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnPostAsync(int?id) { if (!ModelState.IsValid) { return(Page()); } var courseToUpdate = await _context.Courses.FindAsync(id); if (await TryUpdateModelAsync <Course>( courseToUpdate, "course", // Prefix for form value. c => c.Credits, c => c.DepartmentID, c => c.Title)) { await _context.SaveChangesAsync(); return(RedirectToPage("./Index")); } // Select DepartmentID if TryUpdateModelAsync fails. PopulateDepartmentsDropDownList(_context, courseToUpdate.DepartmentID); return(Page()); //_context.Attach(Course).State = EntityState.Modified; //try //{ // await _context.SaveChangesAsync(); //} //catch (DbUpdateConcurrencyException) //{ // if (!CourseExists(Course.CourseID)) // { // return NotFound(); // } // else // { // throw; // } //} //return RedirectToPage("./Index"); }
public async Task <IActionResult> OnPostAsync(int?id) { if (!ModelState.IsValid) { return(Page()); } var studentToUpdate = await _context.Student.FindAsync(id); if (await TryUpdateModelAsync <Student>( studentToUpdate, "student", s => s.FirstMidName, s => s.LastName, s => s.EnrollmentDate)) { await _context.SaveChangesAsync(); return(RedirectToPage("./Index")); } return(Page()); }
public async Task <IActionResult> OnPostAsync(string[] course) { if (!ModelState.IsValid) { return(Page()); } var newInstructor = new Instructor(); if (selectedCourses != null) { newInstructor.CourseAssignments = new List <CourseAssignment>(); foreach (var course in selectedCourses) { var courseToAdd = new CourseAssignment { CourseID = int.Parse(course) }; newInstructor.CourseAssignments.Add(courseToAdd); } } if (await TryUpdateModelAsync <Instructor>( newInstructor, "Instructor", i => i.FirstMidName, i => i.LastName, i => i.HireDate, i => i.OfficeAssignment)) { _context.Instructors.Add(newInstructor); await _context.SaveChangesAsync(); return(RedirectToPage("./Index")); } PopulateAssignedCourseData(_context, newInstructor); return(Page()); }
public static async Task CreateTerm(SchoolContext context) { List <Semester> contextSems = context.Semesters.ToList(); if (contextSems.Count == 0) { int currentYear; if (DateTime.Now.Month > 4) { currentYear = DateTime.Now.Year; } else { currentYear = DateTime.Now.Year - 1; } DateTime current = DateTime.Today; int currentTerm = 4; if (current.Month > 1 && current.Month < 5) { currentTerm = 4; } else if (current.Month > 5 && current.Month < 7) { currentTerm = 1; } else if (current.Month > 7 && current.Month < 9) { currentTerm = 2; } else if (current.Month > 9) { currentTerm = 3; } { contextSems = new List <Semester>(); DateTime date = new DateTime(); for (int i = 2015; i < 2020; i++) { for (int j = 1; j <= 4; j++) { switch (j) { case 1: date = new DateTime(i, 5, 1); break; case 2: date = new DateTime(i, 7, 1); break; case 3: date = new DateTime(i, 9, 1); break; case 4: date = new DateTime(i + 1, 1, 7); break; } //if (i == currentYear && ((DateTime.Today.Year < date.Year && DateTime.Today.Month < date.Month) || DateTime.Today.Year < date.Year)) if (i == currentYear && currentTerm == j) { Semester term = new Semester() { StartYear = i, StartingDate = date, Open = false, Season = (Term)j, Current = true, }; contextSems.Add(term); } else { Semester term = new Semester() { StartYear = i, StartingDate = date, Open = false, Season = (Term)j, Current = false, }; contextSems.Add(term); } } } context.Semesters.AddRange(contextSems); await context.SaveChangesAsync(); } } }