Ejemplo n.º 1
0
 public void Add(User user)
 {
     context.Users.Add(user);
     context.SaveChanges();
 }
Ejemplo n.º 2
0
        public IActionResult EnrollStudent(EnrollStudentRequest request)
        {
            /*
             * {
             * "Studies": "Maths",
             * "firstname": "Jan",
             * "lastname": "Kowalski",
             * "birthdate": "1990-01-01T00:00:00",
             * "indexnumber": "10021"
             * }
             */

            Studies study = (from studies in dbContext.Studies
                             where studies.Name == request.Studies
                             select studies).FirstOrDefault();

            if (study == null)
            {
                return(BadRequest("Studia nie znalezione"));
            }

            Enrollment lastEnrollment = (from enrollments in dbContext.Enrollment
                                         orderby enrollments.IdEnrollment descending
                                         select enrollments).FirstOrDefault();

            int idEnrollment;

            if (lastEnrollment == null)
            {
                idEnrollment = 1;
            }
            else
            {
                idEnrollment = lastEnrollment.IdEnrollment + 1;
            }

            Enrollment en = new Enrollment
            {
                IdEnrollment = idEnrollment,
                IdStudy      = study.IdStudy,
                StartDate    = DateTime.Now
            };

            var studentExists = (from students in dbContext.Student
                                 where students.IndexNumber == request.IndexNumber
                                 select students).Any();

            if (studentExists)
            {
                return(BadRequest($"Student z indeksem {request.IndexNumber} istnieje w bazie"));
            }

            Student st = new Student
            {
                IndexNumber  = request.IndexNumber,
                FirstName    = request.FirstName,
                LastName     = request.LastName,
                BirthDate    = request.Birthdate,
                Password     = BCrypt.Net.BCrypt.HashPassword(request.Password),
                IdEnrollment = en.IdEnrollment
            };

            dbContext.Add(en);
            dbContext.Add(st);

            dbContext.SaveChanges();

            return(Created($"/enrollments/{en.IdEnrollment}", new
            {
                en.IdEnrollment,
                st.IndexNumber
            }));
        }
Ejemplo n.º 3
0
 public void AddEnrollment(Enrollment enrollment)
 {
     ctx.Enrollments.Add(enrollment);
     ctx.SaveChanges();
 }
Ejemplo n.º 4
0
        private void CreateDb()
        {
            db.Classes.Add(new SClass("UObject", "Об'єкт", "UObjectWindow"));

            db.Classes.Add(new SClass("UPerson", "Особу", "UPersonWindow"));
            db.Classes.Add(new SClass("UStudyingPerson", "Особу, яка вчиться", "UStudyingPersonWindow"));
            db.Classes.Add(new SClass("UStudent", "Студента", "UStudentWindow"));
            db.Classes.Add(new SClass("UWorkingPerson", "Особу, яка працює", "UWorkingPersonWindow"));
            db.Classes.Add(new SClass("UTeacher", "Вчителя", "UTeacherWindow"));

            db.Classes.Add(new SClass("UDepartment", "Відділ", "UDepartmentWindow"));
            db.Classes.Add(new SClass("UFaculty", "Факультет", "UFacultyWindow"));
            db.Classes.Add(new SClass("UDeanery", "Деканат", "UDeaneryWindow"));

            db.Classes.Add(new SClass("UInventory", "Інвентар", "UInventoryWindow"));
            db.Classes.Add(new SClass("URoom", "Аудиторія", "URoomWindow"));

            db.Classes.Add(new SClass("UEvent", "Подія", "UEventWindow"));
            db.Classes.Add(new SClass("UExcursion", "Екскурсія", "UExcursionWindow"));
            db.Classes.Add(new SClass("UFestival", "Фестиваль", "UFestivalWindow"));
            db.Classes.Add(new SClass("UMeeting", "Зустріч", "UMeetingWindow"));

            db.Classes.Add(new SClass("UDocument", "Документ", "UDocumentWindow"));
            db.Classes.Add(new SClass("UContract", "Договір", "UContractWindow"));
            db.Classes.Add(new SClass("UStudentTicket", "Учнівський", "UStudentTicketWindow"));
            db.Classes.Add(new SClass("UGradebook", "Заліковка", "UGradebookWindow"));
            db.Classes.Add(new SClass("UPrintEdition", "Друковане видання", "UPrintEditionWindow"));
            db.Classes.Add(new SClass("UNewspaper", "Газета", "UNewspaperWindow"));
            db.Classes.Add(new SClass("UMagazine", "Журнал", "UMagazineWindow"));

            db.Classes.Add(new SClass("UProcess", "Процес", "UProcessWindow"));
            db.Classes.Add(new SClass("URepair", "Ремонт", "URepairWindow"));
            db.Classes.Add(new SClass("USymbol", "Символ", "USymbolWindow"));
            db.Classes.Add(new SClass("UStudyingRoom", "Лекційна аудиторія", "UStudyingRoomWindow"));
            db.Classes.Add(new SClass("UPracticeRoom", "Лабораторія", "UPracticeRoomWindow"));
            db.Classes.Add(new SClass("UDiningRoom", "Їдальня", "UDiningRoomWindow"));
            db.Classes.Add(new SClass("UBuilding", "Будівля", "UBuildingWindow"));
            db.Classes.Add(new SClass("UStudyingBuilding", "Навчальний корпус", "UStudyingBuildingWindow"));
            db.Classes.Add(new SClass("USportBuilding", "Спорткомплекс", "USportBuildingWindow"));
            db.Classes.Add(new SClass("UBotanicGardenBuilding", "Ботанічний сад", "UBotanicGardenBuildingWindow"));
            db.Classes.Add(new SClass("UClinicBuilding", "Поліклініка", "UClinicBuildingWindow"));
            db.Classes.Add(new SClass("UCampBuilding", "Табір", "UCampBuildingWindow"));
            db.Classes.Add(new SClass("UEducationalSubject", "Навчальний предмет", "UEducationalSubjectWindow"));
            db.Classes.Add(new SClass("UReporting", "Звітність", "UReportingWindow"));
            db.Classes.Add(new SClass("UTechniqueInventory", "Технічний інвентар", "UTechniqueInventoryWindow"));
            db.Classes.Add(new SClass("UTransportInventory", "Транспорт", "UTransportInventoryWindow"));
            db.Classes.Add(new SClass("UPlan", "План", "UPlanWindow"));
            db.Classes.Add(new SClass("UMaterial", "Матеріал", "UMaterialWindow"));
            db.SaveChanges();
            for (int i = 0; i < db.Classes.Count(); ++i)
            {
                db.ClassesRules.Add(new SClassRules()
                {
                    ClassId = 1, ClassIdInside = i + 1
                });
                if (i != 0)
                {
                    db.ClassesRules.Add(new SClassRules()
                    {
                        ClassId = i + 1, ClassIdInside = 1
                    });
                }
            }


            db.SaveChanges();
            UObject lnu       = new UObject("ЛНУ ім. І. Франка", 1);
            UObject faculties = new UObject("Факультети", 1);
            UObject majors    = new UObject("Керівники", 1);
            UObject symbols   = new UObject("Символи", 1);

            UObject fpmi = new UFaculty("ФПМІ", "вул. Університетська 1", "ami.lnu.edu.ua", 8);

            fpmi.Childrens = new ObservableCollection <UObject>();
            fpmi.Childrens.Add(new UDeanery("Деканат", "вул Університська 1", "0323232", 1)
            {
                Childrens = new ObservableCollection <UObject>()
                {
                    new UObject("Декан", 1)
                    {
                        Childrens = new ObservableCollection <UObject>()
                        {
                            new UPerson("Дияк І.І.", Convert.ToDateTime("1987-09-05"), "Любінська 10, кв 4", 2)
                        }
                    }
                }
            }
                               );
            UObject cafedras = new UObject("Кафедри", 1);

            cafedras.Childrens.Add(new UObject("КІС", 1));
            cafedras.Childrens.Add(new UObject("КДАІС", 1));
            cafedras.Childrens.Add(new UObject("КП", 1));
            cafedras.Childrens.Add(new UObject("КПМ", 1));

            fpmi.Childrens.Add(cafedras);

            faculties.Childrens = new ObservableCollection <UObject>();
            faculties.Childrens.Add(fpmi);
            faculties.Childrens.Add(new UFaculty("Біологічний", "вул. Михайла Грушевського, 4", "bioweb.lnu.edu.ua", 8));
            faculties.Childrens.Add(new UFaculty("Географічний", "вул. Дорошенка, 41", "geography.lnu.edu.ua", 8));
            faculties.Childrens.Add(new UFaculty("Економічний", "проспект Свободи, 18", "econom.lnu.edu.ua", 8));
            faculties.Childrens.Add(new UFaculty("Іноземних мов", "вул. Університетська 1/415", "lingua.lnu.edu.ua", 8));
            faculties.Childrens.Add(new UFaculty("Філософський", "вул. Університетська, 1", "filos.lnu.edu.ua", 8));
            faculties.Childrens.Add(new UFaculty("Хімічний", "вул. Кирила і Мефодія, 6", "chem.lnu.edu.ua", 8));
            faculties.Childrens.Add(new UFaculty("Філологічний", "вул. Університетська, 1", "philology.lnu.edu.ua", 8));
            faculties.Childrens.Add(new UFaculty("Юридичний", "вул. Січових Стрільців, 14", "law.lnu.edu.ua", 8));

            lnu.Childrens = new ObservableCollection <UObject>();
            lnu.Childrens.Add(faculties);
            lnu.Childrens.Add(majors);
            lnu.Childrens.Add(symbols);
            db.Objects.Add(lnu);
            db.SaveChanges();
        }
Ejemplo n.º 5
0
        public static void SeedData(UniversityContext context)
        {
            List <Language> languages = new List <Language>()
            {
                new Language()
                {
                    Name = "Hindi"
                },
                new Language()
                {
                    Name = "Marathi"
                },
                new Language()
                {
                    Name = "English"
                },
            };

            context.Languages.AddRange(languages);
            context.SaveChanges();

            List <Country> countries = new List <Country>()
            {
                new Country {
                    Name = "India"
                },
                new Country {
                    Name = "USA"
                },
                new Country {
                    Name = "UK"
                },
            };

            context.Countries.AddRange(countries);
            context.SaveChanges();

            var countryIds  = context.Countries.Select(x => x.Id).ToList();
            var languageIds = context.Languages.Select(x => x.Id).ToList();
            List <CountryLanguage> countryLanguages = new List <CountryLanguage>()
            {
                new CountryLanguage()
                {
                    CountryId = countryIds[0], LanguageId = languageIds[0]
                },
                new CountryLanguage()
                {
                    CountryId = countryIds[0], LanguageId = languageIds[1]
                },
                new CountryLanguage()
                {
                    CountryId = countryIds[1], LanguageId = languageIds[0]
                },
                new CountryLanguage()
                {
                    CountryId = countryIds[1], LanguageId = languageIds[1]
                },
                new CountryLanguage()
                {
                    CountryId = countryIds[2], LanguageId = languageIds[1]
                },
                new CountryLanguage()
                {
                    CountryId = countryIds[2], LanguageId = languageIds[2]
                },
            };

            context.CountryLanguages.AddRange(countryLanguages);
            context.SaveChanges();
        }
 public void Save()
 {
     _contextUniver.SaveChanges();
 }
Ejemplo n.º 7
0
 public ActionResult Create(Major major)
 {
     _db.Majors.Add(major);
     _db.SaveChanges();
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 8
0
 public void Create(Course course)
 {
     db.Courses.Add(course);
     db.SaveChanges();
 }
Ejemplo n.º 9
0
 public void Save()
 {
     db.SaveChanges();
 }
Ejemplo n.º 10
0
        public static void Initialize(UniversityContext context)
        {
            context.Database.EnsureCreated();
            if (context.Students.Any() && context.Universities.Any() && context.Enrolls.Any())
            {
                return;
            }

            context.Universities.AddRange(
                new University
            {
                UniversityId = 1,
                Name         = "MU"
            },
                new University
            {
                UniversityId = 2,
                Name         = "CU"
            },
                new University
            {
                UniversityId = 3,
                Name         = "KMUTT"
            });

            context.Students.AddRange(
                new Student
            {
                StudentId = 6013110,
                FirstName = "Annie",
                LastName  = "Ant"
            },
                new Student
            {
                StudentId = 6013111,
                FirstName = "Brownie",
                LastName  = "Bee"
            },
                new Student
            {
                StudentId = 6013112,
                FirstName = "Catie",
                LastName  = "Cat"
            });

            context.Enrolls.AddRange(
                new Enroll
            {
                Degree       = "Bachelor",
                StudentId    = 6013110,
                UniversityId = 1
            },
                new Enroll
            {
                Degree       = "Bachelor",
                StudentId    = 6013111,
                UniversityId = 1
            },
                new Enroll
            {
                Degree       = "Master",
                StudentId    = 6013111,
                UniversityId = 2
            },
                new Enroll
            {
                Degree       = "Bachelor",
                StudentId    = 6013112,
                UniversityId = 3
            });
            context.SaveChanges();
        }
        public override void Execute()
        {
            try
            {
                using (var universityContext = new UniversityContext())
                {
                    // covering: modifying (deleting and adding to) existing, included relationship

                    var departments1
                        = universityContext.Departments
                          .Include(
                              u => u.Subjects)
                          .ToList();

                    if (departments1.Count != 1)
                    {
                        throw new TestCaseFailureException(
                                  "Result set 1's cardinality is incorrect.\n" + departments1.Count + " != 1");
                    }

                    var department_actual1
                        = departments1
                          .First();

                    department_actual1.Subjects
                        = department_actual1.Subjects
                          .OrderBy(
                              s => s.Name)
                          .ToList();

                    var subject2_actual1 = department_actual1.Subjects[1];

                    Subject subject = new Subject();
                    subject.Name = "Test Subject 1 2";

                    department_actual1.Subjects
                    .Remove(
                        subject2_actual1);

                    department_actual1.Subjects
                    .Add(
                        subject);

                    universityContext
                    .Update(
                        department_actual1);

                    universityContext
                    .SaveChanges();

                    universityContext
                    .Entry(
                        subject).State = EntityState.Detached;

                    var departments2
                        = universityContext.Departments
                          .Include(
                              u => u.Subjects)
                          .ToList();

                    if (departments2.Count != 1)
                    {
                        throw new TestCaseFailureException(
                                  "Result set 2's cardinality is incorrect.\n" + departments2.Count + " != 1");
                    }

                    var department_actual2
                        = departments2
                          .First();

                    department_actual2.Subjects
                        = department_actual2.Subjects
                          .OrderBy(
                              s => s.Name)
                          .ToList();

                    if (department_actual2.Subjects.Count != 2)
                    {
                        throw new TestCaseFailureException(
                                  "Result set 2's edges' cardinality is incorrect.\n" + department_actual2.Subjects.Count + " != 2");
                    }

                    if (department_actual2.Subjects[0].Id != department_actual1.Subjects[0].Id || department_actual2.Subjects[1].Id != subject.Id)
                    {
                        throw new TestCaseFailureException(
                                  "Modified result entity's edge is not perfect.");
                    }

                    // covering: do nothing with existing, not included relationship

                    var departments3
                        = universityContext.Departments
                          .ToList();

                    if (departments3.Count != 1)
                    {
                        throw new TestCaseFailureException(
                                  "Result set 3's cardinality is incorrect.\n" + departments3.Count + " != 1");
                    }

                    var department_actual3
                        = departments3
                          .First();

                    universityContext
                    .Update(
                        department_actual3);

                    universityContext
                    .SaveChanges();

                    var departments4
                        = universityContext.Departments
                          .Include(
                              u => u.Subjects)
                          .ToList();

                    if (departments4.Count != 1)
                    {
                        throw new TestCaseFailureException(
                                  "Result set 4's cardinality is incorrect.\n" + departments4.Count + " != 1");
                    }

                    var department_actual4
                        = departments4
                          .First();

                    if (department_actual4.Subjects.Count != 2)
                    {
                        throw new TestCaseFailureException(
                                  "Result set 4's edges' cardinality is incorrect.\n" + department_actual4.Subjects.Count + " != 2");
                    }
                }
            }
            catch (Exception e)
            {
                throw new TestCaseFailureException(
                          "Exception catched:\n" + e.Message + ((e.InnerException != null)
                        ? "\n\tInner exception:\n\t\t" + e.InnerException.Message
                        : ""));
            }
        }
Ejemplo n.º 12
0
 public void AddCourse(Course course)
 {
     ctx.Courses.Add(course);
     ctx.SaveChanges();
 }
Ejemplo n.º 13
0
 public ActionResult Create(Course course)
 {
     _db.Courses.Add(course);
     _db.SaveChanges();
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 14
0
 public void Save()
 {
     _context.SaveChanges();
 }
Ejemplo n.º 15
0
 public ActionResult Create(Department department)
 {
     _db.Department.Add(department);
     _db.SaveChanges();
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 16
0
 public IActionResult AddCourse([FromBody] Course empObj)
 {
     _context.Course.Add(empObj);
     _context.SaveChanges();
     return(Json("OK"));
 }
Ejemplo n.º 17
0
        private static void ShowDataSeedingByDbContextSaveChanges()
        {
            //The issue with such approach is that we need to control, that this code would be excuted only once,
            // and that wan we have many same apps, we need to handle concurrency.
            using (var context = new UniversityContext())
            {
                // the cool thing is that we do not need to worry about the Id keys
                // on SaveChanges the EF will resolve and set the keys.
                var student1 = new Student()
                {
                    Speciality     = "Physics",
                    BirthDate      = DateTime.Now,
                    Name           = "John Smith",
                    StudentAddress = new StudentAddress()
                    {
                        AddressLine = "Lukasha"
                    }
                };
                context.Students.Add(student1);
                var student2 = new Student()
                {
                    Speciality     = "Physics",
                    BirthDate      = DateTime.Now,
                    Name           = "Michael Smith",
                    StudentAddress = new StudentAddress()
                    {
                        AddressLine = "Stryjska"
                    }
                };

                Exam exam1 = new Exam()
                {
                    Name = "Literature", Student = student1
                };

                context.Exams.Add(exam1);

                //context.Exams.Add(new Exam()
                //{
                //    Name = "History",
                //    Student = student1
                //});
                //var student2 = .Entity;
                ////we can do either assign student to address or address to student
                //addr1.Student = student1;
                //addr2.Student = student2;
                //context.Exams.Add(new Exam()
                //{
                //    Name = "Math",
                //    Student = student2
                //});

                //var lecturer1 = context.Lecturers.Add(new Lecturer() { Name = "Peter" }).Entity;
                //var lecturer2 = context.Lecturers.Add(new Lecturer() { Name = "Ivan" }).Entity;

                //lecturer1.LecturerStudents =
                //    new List<LecturerStudent>() { new LecturerStudent() { Lecturer = lecturer1, Student = student1 } };
                //lecturer2.LecturerStudents =
                //    new List<LecturerStudent>() { new LecturerStudent() { Lecturer = lecturer2, Student = student2 } };

                //context.Students.Add(
                //    new DistantStudent()
                //    {
                //        Speciality = "Physics",
                //        BirthDate = DateTime.Now,
                //        Name = "George Smith",
                //        DistantLocation = "Turka"
                //    });

                context.SaveChanges();
            }
        }
Ejemplo n.º 18
0
        public static void Initialize(UniversityContext context)
        {
            //context.Database.EnsureCreated();

            // Look for any students.
            if (context.Student.Any())
            {
                return;       // DB has been seeded
            }

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

            foreach (Student s in students)
            {
                context.Student.Add(s);
            }
            context.SaveChanges();

            var courses = new Course[]
            {
                new Course {
                    CourseID = 1050, Title = "Chemistry", Credits = 3
                },
                new Course {
                    CourseID = 4022, Title = "Microeconomics", Credits = 3
                },
                new Course {
                    CourseID = 4041, Title = "Macroeconomics", Credits = 3
                },
                new Course {
                    CourseID = 1045, Title = "Calculus", Credits = 4
                },
                new Course {
                    CourseID = 3141, Title = "Trigonometry", Credits = 4
                },
                new Course {
                    CourseID = 2021, Title = "Composition", Credits = 3
                },
                new Course {
                    CourseID = 2042, Title = "Literature", Credits = 4
                }
            };

            foreach (Course c in courses)
            {
                context.Course.Add(c);
            }
            context.SaveChanges();

            var enrollments = new Enrollment[]
            {
                new Enrollment {
                    StudentID = 1, CourseID = 1050, Grades = Grades.A
                },
                new Enrollment {
                    StudentID = 1, CourseID = 4022, Grades = Grades.C
                },
                new Enrollment {
                    StudentID = 1, CourseID = 4041, Grades = Grades.B
                },
                new Enrollment {
                    StudentID = 2, CourseID = 1045, Grades = Grades.B
                },
                new Enrollment {
                    StudentID = 2, CourseID = 3141, Grades = Grades.F
                },
                new Enrollment {
                    StudentID = 2, CourseID = 2021, Grades = Grades.F
                },
                new Enrollment {
                    StudentID = 3, CourseID = 1050
                },
                new Enrollment {
                    StudentID = 4, CourseID = 1050
                },
                new Enrollment {
                    StudentID = 4, CourseID = 4022, Grades = Grades.F
                },
                new Enrollment {
                    StudentID = 5, CourseID = 4041, Grades = Grades.C
                },
                new Enrollment {
                    StudentID = 6, CourseID = 1045
                },
                new Enrollment {
                    StudentID = 7, CourseID = 3141, Grades = Grades.A
                },
            };

            foreach (Enrollment e in enrollments)
            {
                context.Enrollment.Add(e);
            }
            context.SaveChanges();
        }
 public void Create(Instructor instructor)
 {
     db.Instructors.Add(instructor);
     db.SaveChanges();
 }
Ejemplo n.º 20
0
 public void UpdateStudent(Student student)
 {
     _db.Students.Update(student);
     _db.SaveChanges();
 }
Ejemplo n.º 21
0
 public Mark AddMark(Mark mark)
 {
     db.Marks.Add(mark);
     db.SaveChanges();
     return(mark);
 }
Ejemplo n.º 22
0
 public IActionResult AddStudent([FromBody] Student empObj)
 {
     _context.Student.Add(empObj);
     _context.SaveChanges();
     return(Json("OK"));
 }
Ejemplo n.º 23
0
        protected override void Seed(UniversityContext context)
        {
            var students = new List <Student>
            {
                new Student {
                    FirstMidName   = "Carson", LastName = "Alexander",
                    EnrollmentDate = DateTime.Parse("2010-09-01")
                },
                new Student {
                    FirstMidName   = "Meredith", LastName = "Alonso",
                    EnrollmentDate = DateTime.Parse("2012-09-01")
                },
                new Student {
                    FirstMidName   = "Arturo", LastName = "Anand",
                    EnrollmentDate = DateTime.Parse("2013-09-01")
                },
                new Student {
                    FirstMidName   = "Gytis", LastName = "Barzdukas",
                    EnrollmentDate = DateTime.Parse("2012-09-01")
                },
                new Student {
                    FirstMidName   = "Yan", LastName = "Li",
                    EnrollmentDate = DateTime.Parse("2012-09-01")
                },
                new Student {
                    FirstMidName   = "Peggy", LastName = "Justice",
                    EnrollmentDate = DateTime.Parse("2011-09-01")
                },
                new Student {
                    FirstMidName   = "Laura", LastName = "Norman",
                    EnrollmentDate = DateTime.Parse("2013-09-01")
                },
                new Student {
                    FirstMidName   = "Nino", LastName = "Olivetto",
                    EnrollmentDate = DateTime.Parse("2005-09-01")
                }
            };


            students.ForEach(s => context.Students.AddOrUpdate(p => p.LastName, s));
            context.SaveChanges();

            var instructors = new List <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")
                }
            };

            instructors.ForEach(s => context.Instructors.AddOrUpdate(p => p.LastName, s));
            context.SaveChanges();

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

            departments.ForEach(s => context.Departments.AddOrUpdate(p => p.Name, s));
            context.SaveChanges();

            var courses = new List <Course>
            {
                new Course {
                    CourseID     = 1050, Title = "Chemistry", Credits = 3,
                    DepartmentID = departments.Single(s => s.Name == "Engineering").DepartmentID,
                    Instructors  = new List <Instructor>()
                },
                new Course {
                    CourseID     = 4022, Title = "Microeconomics", Credits = 3,
                    DepartmentID = departments.Single(s => s.Name == "Economics").DepartmentID,
                    Instructors  = new List <Instructor>()
                },
                new Course {
                    CourseID     = 4041, Title = "Macroeconomics", Credits = 3,
                    DepartmentID = departments.Single(s => s.Name == "Economics").DepartmentID,
                    Instructors  = new List <Instructor>()
                },
                new Course {
                    CourseID     = 1045, Title = "Calculus", Credits = 4,
                    DepartmentID = departments.Single(s => s.Name == "Mathematics").DepartmentID,
                    Instructors  = new List <Instructor>()
                },
                new Course {
                    CourseID     = 3141, Title = "Trigonometry", Credits = 4,
                    DepartmentID = departments.Single(s => s.Name == "Mathematics").DepartmentID,
                    Instructors  = new List <Instructor>()
                },
                new Course {
                    CourseID     = 2021, Title = "Composition", Credits = 3,
                    DepartmentID = departments.Single(s => s.Name == "English").DepartmentID,
                    Instructors  = new List <Instructor>()
                },
                new Course {
                    CourseID     = 2042, Title = "Literature", Credits = 4,
                    DepartmentID = departments.Single(s => s.Name == "English").DepartmentID,
                    Instructors  = new List <Instructor>()
                },
            };

            courses.ForEach(s => context.Courses.AddOrUpdate(p => p.CourseID, s));
            context.SaveChanges();

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

            officeAssignments.ForEach(s => context.OfficeAssignments.AddOrUpdate(p => p.Location, s));
            context.SaveChanges();

            AddOrUpdateInstructor(context, "Chemistry", "Kapoor");
            AddOrUpdateInstructor(context, "Chemistry", "Harui");
            AddOrUpdateInstructor(context, "Microeconomics", "Zheng");
            AddOrUpdateInstructor(context, "Macroeconomics", "Zheng");

            AddOrUpdateInstructor(context, "Calculus", "Fakhouri");
            AddOrUpdateInstructor(context, "Trigonometry", "Harui");
            AddOrUpdateInstructor(context, "Composition", "Abercrombie");
            AddOrUpdateInstructor(context, "Literature", "Abercrombie");

            context.SaveChanges();

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

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