コード例 #1
0
ファイル: SeedUsersRolesDB.cs プロジェクト: AlexStew14/URC
        /// <summary>
        /// Seeds the given database with Users/Roles/UserRoles if needed.
        /// </summary>
        public static async Task Initialize(UserManager <URCUser> userManager, RoleManager <IdentityRole> roleManager, UsersRolesDB context)
        {
            // seed roles if needed
            if (roleManager.Roles.ToArray().Count() == 0)
            {
                var roles = new IdentityRole[]
                {
                    new IdentityRole {
                        Name = "Administrator"
                    },
                    new IdentityRole {
                        Name = "Professor"
                    },
                    new IdentityRole {
                        Name = "Student"
                    }
                };

                foreach (IdentityRole role in roles)
                {
                    var result = await roleManager.CreateAsync(role);
                }
            }

            // seed users if needed
            if (userManager.Users.ToArray().Count() == 0)
            {
                var users = new URCUser[]
                {
                    new URCUser {
                        UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                    },
                    new URCUser {
                        UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                    },
                    new URCUser {
                        UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                    },
                    new URCUser {
                        UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                    },
                    new URCUser {
                        UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                    },
                    new URCUser {
                        UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                    },
                    new URCUser {
                        UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                    },
                    new URCUser {
                        UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                    }
                };

                foreach (URCUser user in users)
                {
                    var result = await userManager.CreateAsync(user, "123ABC!@#def");


                    // add user roles
                    if (result.Succeeded)
                    {
                        var currUser = await userManager.FindByEmailAsync(user.Email);

                        if (currUser.Email.Contains("admin"))
                        {
                            await userManager.AddToRoleAsync(currUser, "Administrator");
                        }
                        else if (currUser.Email.Contains("professor"))
                        {
                            await userManager.AddToRoleAsync(currUser, "Professor");
                        }
                        else
                        {
                            await userManager.AddToRoleAsync(currUser, "Student");
                        }
                    }
                }
            }
        }
コード例 #2
0
ファイル: AdminController.cs プロジェクト: AlexStew14/URC
 /// <summary>
 /// Creates an AdminController object.
 /// </summary>
 /// <param name="context">The context (database) to be used.</param>
 public AdminController(UsersRolesDB context, UserManager <URCUser> userManager, RoleManager <IdentityRole> roleManager)
 {
     _context     = context;
     _userManager = userManager;
     _roleManager = roleManager;
 }
コード例 #3
0
        public static async Task InitializeAsync(QMContext context, IServiceProvider serviceProvider)
        {
            context.Database.Migrate();
            // context.Database.EnsureCreated();

            UsersRolesDB userContext = serviceProvider.GetRequiredService <UsersRolesDB>();

            userContext.Database.Migrate();

            // populate the officers
            if (!context.Officers.Any())
            {
                Officer[] officers = new Officer[]
                {
                    // admins/generals/great generals
                    // 0 = king, 1 = chancellor, 2 = great general, 3 = general
                    new Officer {
                        FirstName = "Sei", LastName = "Ei", Rank = 0, Years = 9, Status = "Alive", Email = "*****@*****.**"
                    },

                    // high commanders 1000-5000
                    new Officer {
                        FirstName = "Shin", LastName = "", Rank = 5000, Years = 9, Status = "Alive", Email = "*****@*****.**"
                    },
                    new Officer {
                        FirstName = "Hon", LastName = "Ou", Rank = 5000, Years = 9, Status = "Alive", Email = "*****@*****.**"
                    },
                    new Officer {
                        FirstName = "Ten", LastName = "Mou", Rank = 5000, Years = 9, Status = "Alive", Email = "*****@*****.**"
                    },
                    new Officer {
                        FirstName = "Renka", LastName = "Shou", Rank = 5000, Years = 9, Status = "Alive", Email = "*****@*****.**"
                    },
                    new Officer {
                        FirstName = "Bi", LastName = "Kaku", Rank = 1000, Years = 2, Status = "Deceased", Email = "*****@*****.**"
                    },

                    // commanders 100-500
                    new Officer {
                        FirstName = "Fun", LastName = "Sa", Rank = 100, Years = 9, Status = "Alive", Email = "*****@*****.**"
                    },
                    new Officer {
                        FirstName = "Un", LastName = "Sen", Rank = 100, Years = 9, Status = "Alive", Email = "*****@*****.**"
                    },
                    new Officer {
                        FirstName = "Shun", LastName = "Ken", Rank = 500, Years = 13, Status = "Alive", Email = "*****@*****.**"
                    },
                    new Officer {
                        FirstName = "Shin", LastName = "Ryou", Rank = 300, Years = 6, Status = "Deceased", Email = "*****@*****.**"
                    },
                    new Officer {
                        FirstName = "Toukai", LastName = "Ki", Rank = 300, Years = 4, Status = "Deceased", Email = "*****@*****.**"
                    }
                };
                foreach (Officer o in officers)
                {
                    context.Officers.Add(o);
                }
            }
            context.SaveChanges();

            // populate the units
            if (!context.Units.Any())
            {
                Unit[] units = new Unit[]
                {
                    new Unit {
                        Name = "Hi SHin Unit", Numbers = 8000, OfficerID = 24
                    },
                    new Unit {
                        Name = "Gyoku Hou Unit", Numbers = 5000, OfficerID = 25
                    },
                    new Unit {
                        Name = "Gaku Ka Unit", Numbers = 5000, OfficerID = 26
                    },
                    new Unit {
                        Name = "Sou Ou Unit", Numbers = 5000, OfficerID = 27
                    },
                    new Unit {
                        Name = "Kaku Bi Unit", Numbers = 1000, OfficerID = 28
                    },

                    new Unit {
                        Name = "Red Leaf Tribe", Numbers = 100, OfficerID = 29
                    },
                    new Unit {
                        Name = "Yellow Bark Tribe", Numbers = 100, OfficerID = 30
                    },
                    new Unit {
                        Name = "Kin Gou Troops", Numbers = 500, OfficerID = 31
                    },
                    new Unit {
                        Name = "Chou Archers", Numbers = 300, OfficerID = 32
                    },
                    new Unit {
                        Name = "Ki Toukai Troops", Numbers = 300, OfficerID = 33
                    }
                };
                foreach (Unit u in units)
                {
                    context.Units.Add(u);
                }
            }
            context.SaveChanges();

            // Populate the soldiers
            if (!context.Soldiers.Any())
            {
                Soldier[] soldiers = new Soldier[]
                {
                    new Soldier {
                        LastName = "", FirstName = "Kei", Age = 28, Birthplace = "Jyouto Village", Status = "Alive", UnitID = 11
                    },
                    new Soldier {
                        LastName = "", FirstName = "Kou", Age = 23, Birthplace = "Jyouto Village", Status = "Alive", UnitID = 12
                    },
                    new Soldier {
                        LastName = "Sou", FirstName = "Man", Age = 27, Birthplace = "?", Status = "Alive", UnitID = 13
                    },
                    new Soldier {
                        LastName = "Ro", FirstName = "Han", Age = 26, Birthplace = "?", Status = "Alive", UnitID = 14
                    },
                    new Soldier {
                        LastName = "", FirstName = "Sou'an", Age = 28, Birthplace = "?", Status = "Alive", UnitID = 15
                    },

                    new Soldier {
                        LastName = "Kou", FirstName = "Moku", Age = 33, Birthplace = "?", Status = "Alive", UnitID = 16
                    },
                    new Soldier {
                        LastName = "Go", FirstName = "Ei", Age = 28, Birthplace = "?", Status = "Deceased", UnitID = 17
                    },
                    new Soldier {
                        LastName = "Kai", FirstName = "Gen", Age = 26, Birthplace = "?", Status = "Deceased", UnitID = 18
                    },
                    new Soldier {
                        LastName = "Bai", FirstName = "Da", Age = 32, Birthplace = "?", Status = "Alive", UnitID = 19
                    },
                    new Soldier {
                        LastName = "Huo", FirstName = "Ying", Age = 39, Birthplace = "?", Status = "Alive", UnitID = 20
                    },

                    new Soldier {
                        LastName = "Kou", FirstName = "Moku", Age = 33, Birthplace = "?", Status = "Alive", UnitID = 11
                    },
                    new Soldier {
                        LastName = "Go", FirstName = "Ei", Age = 28, Birthplace = "?", Status = "Deceased", UnitID = 12
                    },
                    new Soldier {
                        LastName = "Kai", FirstName = "Gen", Age = 26, Birthplace = "?", Status = "Deceased", UnitID = 13
                    },
                    new Soldier {
                        LastName = "Bai", FirstName = "Da", Age = 32, Birthplace = "?", Status = "Alive", UnitID = 14
                    },
                    new Soldier {
                        LastName = "Huo", FirstName = "Ying", Age = 39, Birthplace = "?", Status = "Alive", UnitID = 15
                    },

                    new Soldier {
                        LastName = "Man", FirstName = "Jo", Age = 31, Birthplace = "?", Status = "Alive", UnitID = 17
                    },
                    new Soldier {
                        LastName = "Man", FirstName = "Jo", Age = 31, Birthplace = "?", Status = "Alive", UnitID = 11
                    }
                };
                foreach (Soldier s in soldiers)
                {
                    context.Soldiers.Add(s);
                }
            }
            context.SaveChanges();

            var unit    = from u in context.Units select u;
            var soldier = from s in context.Soldiers select s;

            foreach (var u in unit)
            {
                foreach (var s in soldier)
                {
                    if (s.UnitID == u.UnitID)
                    {
                        s.COID = u.OfficerID;
                        context.Update(s);
                        break;
                    }
                }
            }

            // populate achievements
            if (!context.Achievements.Any())
            {
                Achievement[] achieves = new Achievement[]
                {
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 16
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 16
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 16
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 16
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 16
                    },

                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 2
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 2
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 2
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 2
                    },

                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 3
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 3
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 3
                    },

                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 4
                    },

                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 5
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 5
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 5
                    },

                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 6
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 6
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 6
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 6
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 6
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 6
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 6
                    },

                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 7
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 7
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 7
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 7
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 7
                    },

                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 13
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 13
                    },

                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 9
                    },

                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 10
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 10
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 10
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 10
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 10
                    },

                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 14
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 14
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 14
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 14
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 14
                    },
                    new Achievement {
                        Description = "desc", Battle = "bttl", Reward = "rwrd", SolderID = 14
                    }
                };
                foreach (Achievement a in achieves)
                {
                    context.Achievements.Add(a);
                }
                context.SaveChanges();
            }

            // assigning the soldier to their CO
            if (!context.Assignments.Any())
            {
                Assignment[] assigns = new Assignment[]
                {
                    new Assignment {
                        SoldierID = 16, OfficerID = 24
                    },
                    new Assignment {
                        SoldierID = 2, OfficerID = 24
                    },
                    new Assignment {
                        SoldierID = 3, OfficerID = 25
                    },
                    new Assignment {
                        SoldierID = 4, OfficerID = 25
                    },
                    new Assignment {
                        SoldierID = 5, OfficerID = 25
                    },
                    new Assignment {
                        SoldierID = 6, OfficerID = 26
                    },
                    new Assignment {
                        SoldierID = 7, OfficerID = 26
                    },
                    new Assignment {
                        SoldierID = 13, OfficerID = 26
                    },
                    new Assignment {
                        SoldierID = 9, OfficerID = 27
                    },
                    new Assignment {
                        SoldierID = 10, OfficerID = 27
                    },
                    new Assignment {
                        SoldierID = 14, OfficerID = 28
                    },

                    new Assignment {
                        SoldierID = 16, OfficerID = 29
                    },
                    new Assignment {
                        SoldierID = 2, OfficerID = 29
                    },
                    new Assignment {
                        SoldierID = 3, OfficerID = 30
                    },
                    new Assignment {
                        SoldierID = 4, OfficerID = 30
                    },
                    new Assignment {
                        SoldierID = 5, OfficerID = 30
                    },
                    new Assignment {
                        SoldierID = 6, OfficerID = 31
                    },
                    new Assignment {
                        SoldierID = 7, OfficerID = 31
                    },
                    new Assignment {
                        SoldierID = 13, OfficerID = 31
                    },
                    new Assignment {
                        SoldierID = 9, OfficerID = 32
                    },
                    new Assignment {
                        SoldierID = 10, OfficerID = 32
                    },
                    new Assignment {
                        SoldierID = 14, OfficerID = 33
                    }
                };
                foreach (Assignment a in assigns)
                {
                    context.Assignments.Add(a);
                }
            }
            context.SaveChanges();

            // create the users of the website
            RoleManager <IdentityRole> rm = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >();

            string[]       roleNames = { "Admin", "High Commander", "Commander" };
            IdentityResult result;

            foreach (string s in roleNames)
            {
                // check if the role exists first before adding it
                bool RExists = await rm.RoleExistsAsync(s);

                if (!RExists)
                {
                    // there is no role in the database so add it
                    result = await rm.CreateAsync(new IdentityRole(s));
                }
            }

            // get a user manager
            var userManager = serviceProvider.GetRequiredService <UserManager <IdentityUser> >();
            // create an admin
            IdentityUser admin = new IdentityUser {
                UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
            };
            // check if that admin exists
            IdentityUser userExists = await userManager.FindByEmailAsync("*****@*****.**");

            if (userExists == null)
            {
                // if it doesn't, add it to the database with the following password
                IdentityResult create = await userManager.CreateAsync(admin, "asd123ASD!@#");

                if (create.Succeeded)
                {
                    await userManager.AddToRoleAsync(admin, "Admin");
                }
            }

            // now, create High Commanders
            IdentityUser[] hcs = new IdentityUser[]
            {
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                }
            };
            // do the same thing for High Commanders as admin - find if they exist first before adding them
            foreach (IdentityUser h in hcs)
            {
                userExists = await userManager.FindByEmailAsync(h.Email);

                if (userExists == null)
                {
                    IdentityResult create = await userManager.CreateAsync(h, "asd123ASD!@#");

                    if (create.Succeeded)
                    {
                        await userManager.AddToRoleAsync(h, "High Commander");
                    }
                }
            }

            // onto the commanders!
            IdentityUser[] cs = new IdentityUser[]
            {
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                },
                new IdentityUser {
                    UserName = "******", Email = "*****@*****.**", EmailConfirmed = true
                }
            };
            foreach (IdentityUser c in cs)
            {
                userExists = await userManager.FindByEmailAsync(c.Email);

                if (userExists == null)
                {
                    IdentityResult create = await userManager.CreateAsync(c, "asd123ASD!@#");

                    if (create.Succeeded)
                    {
                        await userManager.AddToRoleAsync(c, "Commander");
                    }
                }
            }

            var users      = from u in userContext.Users select u;
            var commanders = from o in context.Officers select o;

            foreach (var u in users)
            {
                foreach (var o in commanders)
                {
                    if (o.Email == u.Email)
                    {
                        o.UserID = u.Id;
                        context.Update(o);
                        break;
                    }
                }
            }

            context.SaveChanges();
            userContext.SaveChanges();
        }