Exemplo n.º 1
0
        public void SearchCourseOfferingTest()
        {
            string   subject   = "";
            TimeSpan?startTime = null;
            TimeSpan?endTime   = null;

            List <CourseOffering> actualCourseOfferings = CourseOffering.SearchCourseOfferings(subject, startTime, endTime);

            List <CourseOffering> allCourseOfferings = CourseOffering.PopulateCourseOffering();

            int courseOfferingIdValue = 1;

            foreach (CourseOffering eachCourseOffering in allCourseOfferings)
            {
                eachCourseOffering.CourseOfferingId = courseOfferingIdValue;
                courseOfferingIdValue++;
            }

            List <CourseOffering> expectedCourseOfferings = allCourseOfferings;

            Assert.IsTrue(expectedCourseOfferings.SequenceEqual(actualCourseOfferings));

            Assert.AreEqual(expectedCourseOfferings.Count, actualCourseOfferings.Count);

            endTime = new TimeSpan(9, 30, 0); //changing paremeter. shows just the first 3 courses

            expectedCourseOfferings = allCourseOfferings.GetRange(0, 9);

            actualCourseOfferings =
                CourseOffering.SearchCourseOfferings //have to run the method all over again
                    (subject, startTime, endTime);

            Assert.AreEqual(expectedCourseOfferings.Count, actualCourseOfferings.Count);

            Assert.IsTrue(expectedCourseOfferings.SequenceEqual(actualCourseOfferings));
        }
        public async static Task Initialize(IServiceProvider services)
        {
            //change from accessing just the database service
            //add user and role services.
            //var refers to generic variable... can hold any datatype
            var database    = services.GetRequiredService <ApplicationDbContext>();
            var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
            var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();

            //List<DepartmentChair> departmentChairList = DepartmentChair.PopulateDepartmentChair();


            //Step 1: Avoid "Re-populating" tables with the same data

            if (!database.Departments.Any())
            {
                //List<DepartmentChair> departmentChairs = database.DepartmentChairs.ToList<DepartmentChair>();


                //Department department = new Department("Management Information Systems", departmentChairs[0].DepartmentChairID);
                //List<Department> departmentsList = new List<Department>();
                //departmentsList.Add(department);


                //department = new Department("Accounting", departmentChairs[1].DepartmentChairID);
                //departmentsList.Add(department);
                //Step 2: Get data for Departments table
                // Class method. Call using Class Department6


                //  department.PopulateDepartments(); this is an error because we made the static

                //List<DepartmentChair> departments = database.Departments.ToList<DepartmentChair>();

                List <Department> departmentList = Department.PopulateDepartments();
                database.Departments.AddRange(departmentList);
                database.SaveChanges();
            }



            // This is the data population for Course
            if (!database.Courses.Any())
            {
                List <Course> courseList = Course.PopulateCourses();

                database.Courses.AddRange(courseList);
                database.SaveChanges();
            }

            string roleCoordinator     = "Coordinator";
            String roleDepartmentChair = "Chair";

            List <ApplicationUser> appUserList =
                ApplicationUser.PopulateUsers();

            if (!database.Roles.Any())
            {
                IdentityRole role = new IdentityRole(roleCoordinator);
                await roleManager.CreateAsync(role);


                role = new IdentityRole(roleDepartmentChair);
                await roleManager.CreateAsync(role);
            }



            if (!database.Users.Any())
            {
                //DBConn 1 (Synchronus - Method 1)
                //DBConn 1 (Sych - Method 2)
                // this means method 2 only goes after method 1 is done
                // Async means that both can go go at the same time

                foreach (ApplicationUser eachCoordinator in appUserList)
                {
                    //userManager = services.GetRequiredService<UserManager<ApplicationUser>>();
                    await userManager.CreateAsync(eachCoordinator);

                    //userManager = services.GetRequiredService<UserManager<ApplicationUser>>();
                    await userManager.AddToRoleAsync(eachCoordinator, roleCoordinator);
                }
            }


            // Need to finish added department chairs to the list.



            List <DepartmentChair> chairList =
                DepartmentChair.PopulateDepartmentChair();

            if (!database.DepartmentChairs.Any())
            {
                foreach (DepartmentChair eachChair in chairList)
                {
                    await userManager.CreateAsync(eachChair);

                    await userManager.AddToRoleAsync(eachChair, roleDepartmentChair);
                }
            }
            if (!database.ConflictCourses.Any())
            {
                List <ConflictCourse> conflictCourseList = ConflictCourse.PopulateConflictCourses();

                database.ConflictCourses.AddRange(conflictCourseList);
                database.SaveChanges();
            }



            if (!database.Instructors.Any())
            {
                List <Instructor> instructorList = Instructor.PopulateInstructors();
                database.Instructors.AddRange(instructorList);
                database.SaveChanges();
            }

            if (!database.CourseOfferings.Any())
            {
                List <CourseOffering> offeringList = CourseOffering.PopulateCourseOffering();
                database.CourseOfferings.AddRange(offeringList);
                database.SaveChanges();
            }



            List <Department> departments =
                database.Departments.ToList <Department>();

            if (departments[0].DepartmentChairID == null)
            {
                List <DepartmentChair> departmentChairs =
                    database.DepartmentChairs.ToList <DepartmentChair>();

                departments[0].DepartmentChairID = departmentChairs[0].DepartmentChairID;
                database.Departments.Update(departments[0]);

                departments[1].DepartmentChairID = departmentChairs[1].DepartmentChairID;
                database.Departments.Update(departments[1]);
            }
            //departments[2].DepartmentChairID = departmentChairs[2].DepartmentChairID;
            //database.Departments.Update(departments[2]);

            database.SaveChanges();
        } // end of task