protected override void Seed(ApplicationDbContext context)
        {
            // To "seed" a database is to provide it with some initial data
            // when the database is created.
            #region Seed the security roles
            var roleManager  = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context));
            var startupRoles = ConfigurationManager.AppSettings["startupRoles"].Split(';');
            foreach (var role in startupRoles)
            {
                roleManager.Create(new IdentityRole {
                    Name = role
                });
            }
            #endregion

            #region Seed the users
            // First, create the administrator for the site
            string adminUser     = ConfigurationManager.AppSettings["adminUserName"];
            string adminEmail    = ConfigurationManager.AppSettings["adminEmail"];
            string adminPassword = ConfigurationManager.AppSettings["adminPassword"];
            var    userManager   = new ApplicationUserManager(new UserStore <ApplicationUser>(context));
            var    result        = userManager.Create(new ApplicationUser
            {
                UserName       = adminUser,
                Email          = adminEmail,
                EmailConfirmed = true
            }, adminPassword);
            if (result.Succeeded)
            {
                userManager.AddToRole(userManager.FindByName(adminUser).Id, Settings.AdminRole);
            }

            // Next, create login accounts for all the employees
            string defaultPassword = ConfigurationManager.AppSettings["defaultPassword"];
            string emailDomain     = ConfigurationManager.AppSettings["companyDomain"];
            var    controller      = new SetupUserRegistrationController();
            IEnumerable <SetupUserInfo> employees = controller.GetActiveEmployees(emailDomain);
            foreach (var person in employees)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName       = person.UserName,
                    Email          = person.EmailAddress,
                    EmailConfirmed = true,
                    EmployeeId     = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.EmployeeRole);
                }
            }

            // Also create login accounts for all the suppliers
            IEnumerable <SetupUserInfo> suppliers = controller.GetCurrentSuppliers();
            foreach (var supplier in suppliers)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName       = supplier.UserName,
                    Email          = supplier.EmailAddress,
                    EmailConfirmed = true,
                    SupplierId     = int.Parse(supplier.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(supplier.UserName).Id, Settings.SupplierRole);
                }
            }

            // Lastly, create login accounts for all the customers
            IEnumerable <SetupUserInfo> customers = controller.GetCurrentCustomers();
            foreach (var company in customers)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName       = company.UserName,
                    Email          = company.EmailAddress,
                    EmailConfirmed = true,
                    CustomerId     = company.UserId
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(company.UserName).Id, Settings.CustomerRole);
                }
            }
            #endregion

            base.Seed(context);
        }
예제 #2
0
        protected override void Seed(ApplicationDbContext context)
        {
            var roleManager  = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context));
            var startupRoles = ConfigurationManager.AppSettings["startupRoles"].Split(';');

            foreach (var role in startupRoles)
            {
                roleManager.Create(new IdentityRole {
                    Name = role
                });
            }
            string adminUser     = ConfigurationManager.AppSettings["adminUserName"];
            string adminEmail    = ConfigurationManager.AppSettings["adminEmail"];
            string adminPassword = ConfigurationManager.AppSettings["adminPassword"];


            var userManager = new ApplicationUserManager(new UserStore <ApplicationUser>(context));
            var result      = userManager.Create(new ApplicationUser
            {
                UserName       = adminUser,
                Email          = adminEmail,
                EmailConfirmed = true
            }, adminPassword);

            if (result.Succeeded)
            {
                userManager.AddToRole(userManager.FindByName(adminUser).Id, Settings.AdminRole);
            }

            string defaultPassword = ConfigurationManager.AppSettings["defaultPassword"];
            var    controller      = new SetupUserRegistrationController();


            IEnumerable <SetupUserInfo> directors = controller.GetDirectors();

            foreach (var person in directors)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName   = person.UserName,
                    EmployeeID = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.DirectorRole);
                }
            }

            IEnumerable <SetupUserInfo> coordinators = controller.GetCoordinators();

            foreach (var person in coordinators)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName   = person.UserName,
                    EmployeeID = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.CoordinatorRole);
                }
            }

            IEnumerable <SetupUserInfo> investigators = controller.GetInvestigators();

            foreach (var person in investigators)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName   = person.UserName,
                    EmployeeID = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.InvestigatorRole);
                }
            }

            IEnumerable <SetupUserInfo> seniormechanics = controller.GetSeniorMechanics();

            foreach (var person in seniormechanics)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName   = person.UserName,
                    EmployeeID = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.SeniorMechanicRole);
                }
            }

            IEnumerable <SetupUserInfo> mechanics = controller.GetMechanics();

            foreach (var person in mechanics)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName   = person.UserName,
                    EmployeeID = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.MechanicRole);
                }
            }

            IEnumerable <SetupUserInfo> trackservices = controller.GetTrackServices();

            foreach (var person in trackservices)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName   = person.UserName,
                    EmployeeID = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.TrackServiceRole);
                }
            }

            IEnumerable <SetupUserInfo> foodservices = controller.GetFoodServices();

            foreach (var person in foodservices)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName   = person.UserName,
                    EmployeeID = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.FoodServiceRole);
                }
            }

            IEnumerable <SetupUserInfo> shops = controller.GetShops();

            foreach (var person in shops)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName   = person.UserName,
                    EmployeeID = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.ShopRole);
                }
            }

            IEnumerable <SetupUserInfo> clerks = controller.GetClerks();

            foreach (var person in clerks)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName   = person.UserName,
                    EmployeeID = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.ClerkRole);
                }
            }

            IEnumerable <SetupUserInfo> officemanagers = controller.GetOfficeManagers();

            foreach (var person in officemanagers)
            {
                result = userManager.Create(new ApplicationUser
                {
                    UserName   = person.UserName,
                    EmployeeID = int.Parse(person.UserId)
                }, defaultPassword);
                if (result.Succeeded)
                {
                    userManager.AddToRole(userManager.FindByName(person.UserName).Id, Settings.OfficeManagerRole);
                }
            }



            base.Seed(context);
        }