public ActionResult Create(Department department)
        {
            if (ModelState.IsValid)
            {
                db.Departments.Add(department);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.PersonID = new SelectList(db.Instructors, "PersonID", "FullName", department.PersonID);
            return View(department);
        }
 public ActionResult Delete(Department department)
 {
     try
     {
         db.Entry(department).State = EntityState.Deleted;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     catch (DbUpdateConcurrencyException)
     {
         return RedirectToAction("Delete", new { concurrencyError = true });
     }
     catch (DataException /* dex */)
     {
         //Log the error (uncomment dex variable name after DataException and add a line here to write a log.
         ModelState.AddModelError(string.Empty, "Unable to delete. Try again, and if the problem persists contact your system administrator.");
         return View(department);
     }
 }
        public async Task<ActionResult> Edit(int? id, byte[] rowVersion)
        {
            string[] fieldsToBind = new string[] { "Name", "Budget", "StartDate", "InstructorID", "RowVersion" };

            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            var departmentToUpdate = await db.Departments.FindAsync(id);
            if (departmentToUpdate == null)
            {
                Department deletedDepartment = new Department();
                TryUpdateModel(deletedDepartment, fieldsToBind);
                ModelState.AddModelError(string.Empty,
                    "Unable to save changes. The department was deleted by another user.");
                ViewBag.InstructorID = new SelectList(db.Instructors, "ID", "FullName", deletedDepartment.InstructorID);
                return View(deletedDepartment);
            }

            if (TryUpdateModel(departmentToUpdate, fieldsToBind))
            {
                try
                {
                    db.Entry(departmentToUpdate).OriginalValues["RowVersion"] = rowVersion;
                    await db.SaveChangesAsync();

                    return RedirectToAction("Index");
                }
                catch (DbUpdateConcurrencyException ex)
                {
                    var entry = ex.Entries.Single();
                    var clientValues = (Department)entry.Entity;
                    var databaseEntry = entry.GetDatabaseValues();
                    if (databaseEntry == null)
                    {
                        ModelState.AddModelError(string.Empty,
                            "Unable to save changes. The department was deleted by another user.");
                    }
                    else
                    {
                        var databaseValues = (Department)databaseEntry.ToObject();

                        if (databaseValues.Name != clientValues.Name)
                            ModelState.AddModelError("Name", "Current value: "
                                + databaseValues.Name);
                        if (databaseValues.Budget != clientValues.Budget)
                            ModelState.AddModelError("Budget", "Current value: "
                                + String.Format("{0:c}", databaseValues.Budget));
                        if (databaseValues.StartDate != clientValues.StartDate)
                            ModelState.AddModelError("StartDate", "Current value: "
                                + String.Format("{0:d}", databaseValues.StartDate));
                        if (databaseValues.InstructorID != clientValues.InstructorID)
                            ModelState.AddModelError("InstructorID", "Current value: "
                                + db.Instructors.Find(databaseValues.InstructorID).FullName);
                        ModelState.AddModelError(string.Empty, "The record you attempted to edit "
                            + "was modified by another user after you got the original value. The "
                            + "edit operation was canceled and the current values in the database "
                            + "have been displayed. If you still want to edit this record, click "
                            + "the Save button again. Otherwise click the Back to List hyperlink.");
                        departmentToUpdate.RowVersion = databaseValues.RowVersion;
                    }
                }
                catch (RetryLimitExceededException /* dex */)
                {
                    //Log the error (uncomment dex variable name and add a line here to write a log.
                    ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
                }
            }
            ViewBag.InstructorID = new SelectList(db.Instructors, "ID", "FullName", departmentToUpdate.InstructorID);
            return View(departmentToUpdate);
        }
Beispiel #4
0
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var context = new UniversityContext(
                       serviceProvider.GetRequiredService <
                           DbContextOptions <UniversityContext> >()))
            {
                // Look for any movies.
                if (context.Student.Any())
                {
                    return;   // DB has been seeded
                }

                var students = new Student[]
                {
                    new Student {
                        FirstMidName = "Carson", LastName = "Alexander", EnrollmentDate = DateTime.Parse("2005-09-01")
                    },
                    new Student {
                        FirstMidName = "Meredith", LastName = "Alonso", EnrollmentDate = DateTime.Parse("2002-09-01")
                    },
                    new Student {
                        FirstMidName = "Arturo", LastName = "Anand", EnrollmentDate = DateTime.Parse("2003-09-01")
                    },
                    new Student {
                        FirstMidName = "Gytis", LastName = "Barzdukas", EnrollmentDate = DateTime.Parse("2002-09-01")
                    },
                    new Student {
                        FirstMidName = "Yan", LastName = "Li", EnrollmentDate = DateTime.Parse("2002-09-01")
                    },
                    new Student {
                        FirstMidName = "Peggy", LastName = "Justice", EnrollmentDate = DateTime.Parse("2001-09-01")
                    },
                    new Student {
                        FirstMidName = "Laura", LastName = "Norman", EnrollmentDate = DateTime.Parse("2003-09-01")
                    },
                    new Student {
                        FirstMidName = "Nino", LastName = "Olivetto", EnrollmentDate = DateTime.Parse("2005-09-01")
                    }
                };
                foreach (Student s in students)
                {
                    context.Student.Add(s);
                }
                context.SaveChanges();

                var instructors = new Instructor[]
                {
                    new Instructor {
                        FirstMidName = "Kim", LastName = "Abercrombie",
                        HireDate     = DateTime.Parse("1995-03-11")
                    },
                    new Instructor {
                        FirstMidName = "Fadi", LastName = "Fakhouri",
                        HireDate     = DateTime.Parse("2002-07-06")
                    },
                    new Instructor {
                        FirstMidName = "Roger", LastName = "Harui",
                        HireDate     = DateTime.Parse("1998-07-01")
                    },
                    new Instructor {
                        FirstMidName = "Candace", LastName = "Kapoor",
                        HireDate     = DateTime.Parse("2001-01-15")
                    },
                    new Instructor {
                        FirstMidName = "Roger", LastName = "Zheng",
                        HireDate     = DateTime.Parse("2004-02-12")
                    }
                };

                foreach (Instructor i in instructors)
                {
                    context.Instructor.Add(i);
                }
                context.SaveChanges();

                var departments = new Department[]
                {
                    new Department {
                        Name         = "English", Budget = 350000,
                        StartDate    = DateTime.Parse("2007-09-01"),
                        InstructorID = instructors.Single(i => i.LastName == "Abercrombie").ID
                    },
                    new Department {
                        Name         = "Mathematics", Budget = 100000,
                        StartDate    = DateTime.Parse("2007-09-01"),
                        InstructorID = instructors.Single(i => i.LastName == "Fakhouri").ID
                    },
                    new Department {
                        Name         = "Engineering", Budget = 350000,
                        StartDate    = DateTime.Parse("2007-09-01"),
                        InstructorID = instructors.Single(i => i.LastName == "Harui").ID
                    },
                    new Department {
                        Name         = "Economics", Budget = 100000,
                        StartDate    = DateTime.Parse("2007-09-01"),
                        InstructorID = instructors.Single(i => i.LastName == "Kapoor").ID
                    }
                };

                foreach (Department d in departments)
                {
                    context.Department.Add(d);
                }
                context.SaveChanges();

                var courses = new Course[]
                {
                    new Course {
                        CourseID     = 1050, Title = "Chemistry", Credits = 3,
                        DepartmentID = departments.Single(s => s.Name == "Engineering").DepartmentID
                    },
                    new Course {
                        CourseID     = 4022, Title = "Microeconomics", Credits = 3,
                        DepartmentID = departments.Single(s => s.Name == "Economics").DepartmentID
                    },
                    new Course {
                        CourseID     = 4041, Title = "Macroeconomics", Credits = 3,
                        DepartmentID = departments.Single(s => s.Name == "Economics").DepartmentID
                    },
                    new Course {
                        CourseID     = 1045, Title = "Calculus", Credits = 4,
                        DepartmentID = departments.Single(s => s.Name == "Mathematics").DepartmentID
                    },
                    new Course {
                        CourseID     = 3141, Title = "Trigonometry", Credits = 4,
                        DepartmentID = departments.Single(s => s.Name == "Mathematics").DepartmentID
                    },
                    new Course {
                        CourseID     = 2021, Title = "Composition", Credits = 3,
                        DepartmentID = departments.Single(s => s.Name == "English").DepartmentID
                    },
                    new Course {
                        CourseID     = 2042, Title = "Literature", Credits = 4,
                        DepartmentID = departments.Single(s => s.Name == "English").DepartmentID
                    },
                };
                foreach (Course c in courses)
                {
                    context.Course.Add(c);
                }
                context.SaveChanges();

                var officeAssignments = new OfficeAssignment[]
                {
                    new OfficeAssignment {
                        InstructorID = instructors.Single(i => i.LastName == "Fakhouri").ID,
                        Location     = "Smith 17"
                    },
                    new OfficeAssignment {
                        InstructorID = instructors.Single(i => i.LastName == "Harui").ID,
                        Location     = "Gowan 27"
                    },
                    new OfficeAssignment {
                        InstructorID = instructors.Single(i => i.LastName == "Kapoor").ID,
                        Location     = "Thompson 304"
                    },
                };

                foreach (OfficeAssignment o in officeAssignments)
                {
                    context.OfficeAssignment.Add(o);
                }
                context.SaveChanges();

                var courseInstructors = new CourseAssignment[]
                {
                    new CourseAssignment {
                        CourseID     = courses.Single(c => c.Title == "Chemistry").CourseID,
                        InstructorID = instructors.Single(i => i.LastName == "Kapoor").ID
                    },
                    new CourseAssignment {
                        CourseID     = courses.Single(c => c.Title == "Chemistry").CourseID,
                        InstructorID = instructors.Single(i => i.LastName == "Harui").ID
                    },
                    new CourseAssignment {
                        CourseID     = courses.Single(c => c.Title == "Microeconomics").CourseID,
                        InstructorID = instructors.Single(i => i.LastName == "Zheng").ID
                    },
                    new CourseAssignment {
                        CourseID     = courses.Single(c => c.Title == "Macroeconomics").CourseID,
                        InstructorID = instructors.Single(i => i.LastName == "Zheng").ID
                    },
                    new CourseAssignment {
                        CourseID     = courses.Single(c => c.Title == "Calculus").CourseID,
                        InstructorID = instructors.Single(i => i.LastName == "Fakhouri").ID
                    },
                    new CourseAssignment {
                        CourseID     = courses.Single(c => c.Title == "Trigonometry").CourseID,
                        InstructorID = instructors.Single(i => i.LastName == "Harui").ID
                    },
                    new CourseAssignment {
                        CourseID     = courses.Single(c => c.Title == "Composition").CourseID,
                        InstructorID = instructors.Single(i => i.LastName == "Abercrombie").ID
                    },
                    new CourseAssignment {
                        CourseID     = courses.Single(c => c.Title == "Literature").CourseID,
                        InstructorID = instructors.Single(i => i.LastName == "Abercrombie").ID
                    },
                };

                foreach (CourseAssignment ci in courseInstructors)
                {
                    context.CourseAssignment.Add(ci);
                }
                context.SaveChanges();

                var enrollments = new Enrollment[]
                {
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Alexander").ID,
                        CourseID  = courses.Single(c => c.Title == "Chemistry").CourseID,
                        Grade     = Grade.A
                    },
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Alexander").ID,
                        CourseID  = courses.Single(c => c.Title == "Microeconomics").CourseID,
                        Grade     = Grade.C
                    },
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Alexander").ID,
                        CourseID  = courses.Single(c => c.Title == "Macroeconomics").CourseID,
                        Grade     = Grade.B
                    },
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Alonso").ID,
                        CourseID  = courses.Single(c => c.Title == "Calculus").CourseID,
                        Grade     = Grade.B
                    },
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Alonso").ID,
                        CourseID  = courses.Single(c => c.Title == "Trigonometry").CourseID,
                        Grade     = Grade.B
                    },
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Alonso").ID,
                        CourseID  = courses.Single(c => c.Title == "Composition").CourseID,
                        Grade     = Grade.B
                    },
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Anand").ID,
                        CourseID  = courses.Single(c => c.Title == "Chemistry").CourseID
                    },
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Anand").ID,
                        CourseID  = courses.Single(c => c.Title == "Microeconomics").CourseID,
                        Grade     = Grade.B
                    },
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Barzdukas").ID,
                        CourseID  = courses.Single(c => c.Title == "Chemistry").CourseID,
                        Grade     = Grade.B
                    },
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Li").ID,
                        CourseID  = courses.Single(c => c.Title == "Composition").CourseID,
                        Grade     = Grade.B
                    },
                    new Enrollment {
                        StudentID = students.Single(s => s.LastName == "Justice").ID,
                        CourseID  = courses.Single(c => c.Title == "Literature").CourseID,
                        Grade     = Grade.B
                    }
                };

                foreach (Enrollment e in enrollments)
                {
                    var enrollmentInDataBase = context.Enrollment.Where(
                        s =>
                        s.Student.ID == e.StudentID &&
                        s.Course.CourseID == e.CourseID).SingleOrDefault();
                    if (enrollmentInDataBase == null)
                    {
                        context.Enrollment.Add(e);
                    }
                }
                context.SaveChanges();
            }
        }