예제 #1
0
        public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null)
        {
            //int departmentID = Convert.ToInt32(model.DepartmentID);
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                ApplicationUser user = null;
                if (model.UserRole == "Chair")
                {
                    user = new DepartmentChair(model.FirstName, model.LastName, model.Email, model.Phone, model.Password, model.DepartmentID);
                }

                else
                {
                    user = new ApplicationUser(model.FirstName, model.LastName, model.Email, model.Phone, model.Password);
                }

                //var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    //assigning user
                    await _userManager.AddToRoleAsync(user, model.UserRole);

                    //if departmentchair assign chair to dept
                    if (model.UserRole == "Chair")
                    {
                        Department department = _database.Departments.Find(model.DepartmentID);
                        department.DepartmentChairID = user.Id;
                        _database.Departments.Update(department);
                        _database.SaveChanges();
                    }
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                    await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);

                    /*
                     * await _signInManager.SignInAsync(user, isPersistent: false);
                     * _logger.LogInformation("User created a new account with password.");
                     */

                    return(RedirectToLocal(returnUrl));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
예제 #2
0
        private static void Main()
        {
            // Setup Chain of Responsibility
            Approver provost   = new Provost(null);
            Approver dean      = new Dean(provost);
            Approver deptChair = new DepartmentChair(dean);

            // Approve candidates
            //GraduateAssistant p = new GraduateAssistant("201500001", 3.8, "Sally Jones");
            //deptChair.ApproveGA(p);

            //var p = new GraduateAssistant("201500002", 3.4, "Adam Bing");
            //deptChair.ApproveGA(p);

            //var p = new GraduateAssistant("201500003", 3.0, "Lucas Jade");
            //deptChair.ApproveGA(p);

            var p = new GraduateAssistant("201500004", 2.9, "Joe Smith");

            deptChair.ApproveGA(p);
        }
        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
예제 #4
0
        public async static Task  Initialize(IServiceProvider services)
        {
            //change from accessing just the database service, add user and role services

            var database    = services.GetRequiredService <ApplicationDbContext>();
            var userManager = services.GetRequiredService <UserManager <ApplicationUser> >();
            var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();


            if (!database.Departments.Any())
            {
                List <Department> departmentList = Department.PopulateDepartments();

                database.Departments.AddRange(departmentList);
                database.SaveChanges();
            }



            if (!database.Courses.Any())
            {
                List <Course> courseList = Course.PopulateCourses();

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



            string roleDepartmentChair = "DepartmentChair";
            string roleCoordinator     = "Coordinator";

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

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


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


            if (!database.Users.Any())
            {
                foreach (ApplicationUser eachCoordinator in appUserList)
                {
                    await userManager.CreateAsync(eachCoordinator);

                    await userManager.AddToRoleAsync(eachCoordinator, roleCoordinator);
                }
            }

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


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

                    await userManager.AddToRoleAsync(eachDepartmentChair, 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> courseOfferingsList =
                    CourseOffering.PopulateCourseOfferings();
                database.CourseOfferings.AddRange(courseOfferingsList);
                database.SaveChanges();
            }
            //if (!database.Departments.Any())
            //{
            List <Department> departments =
                database.Departments.ToList <Department>();

            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();


            // }
            if (!database.TeachingQualifications.Any())
            {
                List <TeachingQualification> teachingQualificationsList
                    = TeachingQualification.PopulateTeachingQualifications();

                database.TeachingQualifications.AddRange(teachingQualificationsList);
                database.SaveChanges();
            }

            if (!database.CourseOfferingChanges.Any())
            {
                List <CourseOfferingChanges> courseOfferingChangesList =
                    CourseOfferingChanges.PopulateCourseOfferingChanges();
                database.CourseOfferingChanges.AddRange(courseOfferingChangesList);
                database.SaveChanges();
            }
        }