public static async Task<IdentityResult> AddUserToRole(string userId, string roleName)
            {
                var userManager = new UserManager<PlatformUser>(
                    new UserStore<PlatformUser>(new PlatformUserIdentityDbContext()));

                //Allows for use of email address as username:
                userManager.UserValidator = new UserValidator<PlatformUser>(userManager) { AllowOnlyAlphanumericUserNames = false };

                var result = await userManager.AddToRoleAsync(userId, roleName);

                return result;
        }
        public ActionResult Promote(string id)
        {
            var store = new UserStore<User>(this.Data.Context);
            var manager = new UserManager<User>(store);

            manager.AddToRoleAsync(id, GlobalConstants.AdminRole);

            this.Notify(GlobalConstants.PromoteUser, NotificationType.success);

            return this.RedirectToAction("Manage");
        }
        public async Task ClaimsIdentityTest()
        {
            var db = UnitTestHelper.CreateDefaultDb();
            var manager = new UserManager<IdentityUser>(new UserStore<IdentityUser>(db));
            var role = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(db));
            var user = new IdentityUser("Hao");
            UnitTestHelper.IsSuccess(await manager.CreateAsync(user));
            UnitTestHelper.IsSuccess(await role.CreateAsync(new IdentityRole("Admin")));
            UnitTestHelper.IsSuccess(await role.CreateAsync(new IdentityRole("Local")));
            UnitTestHelper.IsSuccess(await manager.AddToRoleAsync(user.Id, "Admin"));
            UnitTestHelper.IsSuccess(await manager.AddToRoleAsync(user.Id, "Local"));
            Claim[] userClaims =
            {
                new Claim("Whatever", "Value"),
                new Claim("Whatever2", "Value2")
            };
            foreach (var c in userClaims)
            {
                UnitTestHelper.IsSuccess(await manager.AddClaimAsync(user.Id, c));
            }

            var identity = await manager.CreateIdentityAsync(user, "test");
            var claimsFactory = manager.ClaimsIdentityFactory as ClaimsIdentityFactory<IdentityUser, string>;
            Assert.NotNull(claimsFactory);
            var claims = identity.Claims;
            Assert.NotNull(claims);
            Assert.True(
                claims.Any(c => c.Type == claimsFactory.UserNameClaimType && c.Value == user.UserName));
            Assert.True(claims.Any(c => c.Type == claimsFactory.UserIdClaimType && c.Value == user.Id));
            Assert.True(claims.Any(c => c.Type == claimsFactory.RoleClaimType && c.Value == "Admin"));
            Assert.True(claims.Any(c => c.Type == claimsFactory.RoleClaimType && c.Value == "Local"));
            Assert.True(
                claims.Any(
                    c =>
                        c.Type == ClaimsIdentityFactory<IdentityUser>.IdentityProviderClaimType &&
                        c.Value == ClaimsIdentityFactory<IdentityUser>.DefaultIdentityProviderClaimValue));
            foreach (var cl in userClaims)
            {
                Assert.True(claims.Any(c => c.Type == cl.Type && c.Value == cl.Value));
            }
        }
 private static async System.Threading.Tasks.Task CreateUserIfNotExist(UserManager<ApplicationUser> userManager, string email, string password, string role, string loginProvider = null, string providerKey = null)
 {
     var user = await userManager.FindByEmailAsync(email);
     if (user == null)
     {
         user = new ApplicationUser { UserName = email, Email = email };
         var result = await userManager.CreateAsync(user, password);
         if (!result.Succeeded)
         {
             throw new ApplicationException(string.Join("\n", result.Errors.Select(a => a.Description).ToArray()));
         }
         await userManager.AddToRoleAsync(user, role);
         if (loginProvider != null && providerKey != null)
         {
             await userManager.AddLoginAsync(user, new UserLoginInfo(loginProvider, providerKey, ""));
         }
     }
 }
        private async void Seed()
        {
            const string roleName = "administrator";
            const string userName = "******";
            var userContext = new ApplicationDbContext();
            var roleStore = new RoleStore<IdentityRole>(userContext);
            var roleManager = new RoleManager<IdentityRole>(roleStore);

            if (roleManager.RoleExists(roleName)) return;
            await roleManager.CreateAsync(new IdentityRole(roleName));
            var userStore = new UserStore<ApplicationUser>(userContext);
            var userManager = new UserManager<ApplicationUser>(userStore);
            var admin = new ApplicationUser() {UserName = userName};
            await userManager.CreateAsync(admin, "Koekoek!IsNummer1");
            await userManager.AddToRoleAsync(admin.Id, roleName);

            var pandContext = new ExclimmoContext();
            pandContext.SeedPanden();

        }
Beispiel #6
0
 private static async Task<ApplicationUser> CreateUserIfNotExist(UserManager<ApplicationUser> userManager, ApplicationUser user, string password, string role, string loginProvider = null, string providerKey = null)
 {
     //Debugger.Launch();
     user.EmailConfirmed = true;
     user.Email = user.Email ?? user.UserName;
     if (await userManager.FindByEmailAsync(user.Email) == null)
     {
         var result = await userManager.CreateAsync(user, password);
         if (!result.Succeeded)
         {
             throw new ApplicationException(string.Join("\n", result.Errors.Select(a => a.Description).ToArray()));
         }
         await userManager.AddToRoleAsync(user, role);
         if (loginProvider != null && providerKey != null)
         {
             await userManager.AddLoginAsync(user, new UserLoginInfo(loginProvider, providerKey, ""));
         }
     }
     return user;
 }
Beispiel #7
0
        public async Task<ActionResult> AddUserToRole(AddUserToRoleViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (var ctx = new ApplicationDbContext())
                {
                    var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(ctx));
                    var identityResult = await userManager.AddToRoleAsync(model.UserId, model.RoleName);

                    if (identityResult.Succeeded)
                    {
                        TempData["Message"] = "User added to role succesfully";
                    }
                    else
                    {
                        // TODO: add errors to TempData
                    }
                }
            }

            return RedirectToAction("EditMembers", "Roles", new { Id = model.RoleName});
        }
        public async Task<IHttpActionResult> UpdateRuoloUtente(UpdateRuoloUtenteModel Model)
        {
            if (Model == null || !ModelState.IsValid)
                return BadRequest(ModelState);

            using (var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
            {
                var utente = await userManager.FindByNameAsync(Model.Username);
                if (utente == null)
                    return NotFound();

                if (Model.NuovoStato)
                {
                    await userManager.AddToRoleAsync(utente.Id, Model.Ruolo);
                }
                else
                {
                    await userManager.RemoveFromRoleAsync(utente.Id, Model.Ruolo);
                }
            }

            return Ok();
        }
Beispiel #9
0
        public async Task <IActionResult> PutUser(string id, [Bind("FirstName", "LastName", "IsManager")] UserInfo userInput)
        {
            if (id != userInput.Id)
            {
                return(BadRequest());
            }

            var user = await _userManager.FindByIdAsync(id);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{id}'."));
            }

            user.FirstName = userInput.FirstName;
            user.LastName  = userInput.LastName;

            var result = await _userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                var roles = await _userManager.GetRolesAsync(user);

                var isInManagerRole = roles.Contains("manager");
                var claims          = await _userManager.GetClaimsAsync(user);

                var hasManagerClaim = claims.FirstOrDefault(c => c.Value == "manager") == null ? false: true;
                if (isInManagerRole != hasManagerClaim)
                {
                    return(BadRequest());
                }

                if (userInput.IsManager == true)
                {
                    if (!isInManagerRole)
                    {
                        await _userManager.AddToRoleAsync(user, "manager");

                        await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "manager"));
                    }
                }
                else
                {
                    if (isInManagerRole)
                    {
                        await _userManager.RemoveFromRoleAsync(user, "manager");

                        await _userManager.RemoveClaimAsync(user, new Claim(ClaimTypes.Role, "manager"));
                    }
                }
            }
            else
            {
                if (!UserExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError(string.Empty, error.Description);
                    }
                }
            }

            return(NoContent());
        }
    protected void RoleCheckBox_CheckChanged(object sender, EventArgs e)
    {
        // Reference the CheckBox that raised this event
        CheckBox RoleCheckBox = sender as CheckBox;

        // Get the currently selected user and role
        string selectedUserName = UserList.SelectedValue;
        var um = new UserManager();
        var user = um.FindByName(selectedUserName);
        string roleName = RoleCheckBox.Text;

        // Determine if we need to add or remove the user from this role
        if (RoleCheckBox.Checked)
        {
            // Add the user to the role
            um.AddToRoleAsync(user.Id, roleName);

            // Display a status message
            ActionStatus.Text = string.Format("User {0} was added to role {1}.", selectedUserName, roleName);
        }
        else
        {
            // Remove the user from the role
            um.RemoveFromRoleAsync(user.Id, roleName);

            // Display a status message
            ActionStatus.Text = string.Format("User {0} was removed from role {1}.", selectedUserName, roleName);
        }

        // Refresh the "by role" interface
        DisplayUsersBelongingToRole();
    }
 private async Task AddUserToRoleAsync(ApplicationUser user, string role)
 {
     var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
     var result = await userManager.AddToRoleAsync(user.Id, role);
 }
        public static async System.Threading.Tasks.Task SeedAllCustomersAsync(AppDbContext db, IServiceProvider serviceProvider)
        {
            UserManager <AppUser> _userManager = serviceProvider.GetRequiredService <UserManager <AppUser> >();

            if (db.Users.Count() == 51)
            {
                throw new NotSupportedException("The database already contains all 51 customers!");
            }

            Int32          intCustomersAdded = 0;
            String         customerEmail     = "Begin"; //helps to keep track of error on repos
            List <AppUser> AppUsers          = new List <AppUser>();

            try
            {
                AppUser u1 = new AppUser();
                u1.UserName    = "******";
                u1.Email       = "*****@*****.**";
                u1.PhoneNumber = "5725458641";
                u1.FirstName   = "Christopher";
                u1.LastName    = "Baker";
                u1.Address     = "1898 Schurz Alley";
                u1.City        = "Austin";
                u1.State       = "TX";
                u1.Zip         = "78705";
                u1.UserStatus  = "Active";
                IdentityResult resultu1 = await _userManager.CreateAsync(u1, "bookworm");

                if (resultu1.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u1, "Customer");
                }
                AppUsers.Add(u1);

                AppUser u2 = new AppUser();
                u2.UserName    = "******";
                u2.Email       = "*****@*****.**";
                u2.PhoneNumber = "9867048435";
                u2.FirstName   = "Michelle";
                u2.LastName    = "Banks";
                u2.Address     = "97 Elmside Pass";
                u2.City        = "Austin";
                u2.State       = "TX";
                u2.Zip         = "78712";
                u2.UserStatus  = "Active";
                IdentityResult resultu2 = await _userManager.CreateAsync(u2, "potato");

                if (resultu2.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u2, "Customer");
                }
                AppUsers.Add(u2);

                AppUser u3 = new AppUser();
                u3.UserName    = "******";
                u3.Email       = "*****@*****.**";
                u3.PhoneNumber = "6836109514";
                u3.FirstName   = "Franco";
                u3.LastName    = "Broccolo";
                u3.Address     = "88 Crowley Circle";
                u3.City        = "Austin";
                u3.State       = "TX";
                u3.Zip         = "78786";
                u3.UserStatus  = "Active";
                IdentityResult resultu3 = await _userManager.CreateAsync(u3, "painting");

                if (resultu3.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u3, "Customer");
                }
                AppUsers.Add(u3);

                AppUser u4 = new AppUser();
                u4.UserName    = "******";
                u4.Email       = "*****@*****.**";
                u4.PhoneNumber = "7070911071";
                u4.FirstName   = "Wendy";
                u4.LastName    = "Chang";
                u4.Address     = "56560 Sage Junction";
                u4.City        = "Eagle Pass";
                u4.State       = "TX";
                u4.Zip         = "78852";
                u4.UserStatus  = "Active";
                IdentityResult resultu4 = await _userManager.CreateAsync(u4, "texas1");

                if (resultu4.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u4, "Customer");
                }
                AppUsers.Add(u4);

                AppUser u5 = new AppUser();
                u5.UserName    = "******";
                u5.Email       = "*****@*****.**";
                u5.PhoneNumber = "1488907687";
                u5.FirstName   = "Lim";
                u5.LastName    = "Chou";
                u5.Address     = "60 Lunder Point";
                u5.City        = "Austin";
                u5.State       = "TX";
                u5.Zip         = "78729";
                u5.UserStatus  = "Active";
                IdentityResult resultu5 = await _userManager.CreateAsync(u5, "Anchorage");

                if (resultu5.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u5, "Customer");
                }
                AppUsers.Add(u5);

                AppUser u6 = new AppUser();
                u6.UserName    = "******";
                u6.Email       = "*****@*****.**";
                u6.PhoneNumber = "6899701824";
                u6.FirstName   = "Shan";
                u6.LastName    = "Dixon";
                u6.Address     = "9448 Pleasure Avenue";
                u6.City        = "Georgetown";
                u6.State       = "TX";
                u6.Zip         = "78628";
                u6.UserStatus  = "Active";
                IdentityResult resultu6 = await _userManager.CreateAsync(u6, "aggies");

                if (resultu6.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u6, "Customer");
                }
                AppUsers.Add(u6);

                AppUser u7 = new AppUser();
                u7.UserName    = "******";
                u7.Email       = "*****@*****.**";
                u7.PhoneNumber = "9986825917";
                u7.FirstName   = "Jim Bob";
                u7.LastName    = "Evans";
                u7.Address     = "51 Emmet Parkway";
                u7.City        = "Austin";
                u7.State       = "TX";
                u7.Zip         = "78705";
                u7.UserStatus  = "Active";
                IdentityResult resultu7 = await _userManager.CreateAsync(u7, "hampton1");

                if (resultu7.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u7, "Customer");
                }
                AppUsers.Add(u7);

                AppUser u8 = new AppUser();
                u8.UserName    = "******";
                u8.Email       = "*****@*****.**";
                u8.PhoneNumber = "3464121966";
                u8.FirstName   = "Lou Ann";
                u8.LastName    = "Feeley";
                u8.Address     = "65 Darwin Crossing";
                u8.City        = "Austin";
                u8.State       = "TX";
                u8.Zip         = "78704";
                u8.UserStatus  = "Active";
                IdentityResult resultu8 = await _userManager.CreateAsync(u8, "longhorns");

                if (resultu8.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u8, "Customer");
                }
                AppUsers.Add(u8);

                AppUser u9 = new AppUser();
                u9.UserName    = "******";
                u9.Email       = "*****@*****.**";
                u9.PhoneNumber = "6581357270";
                u9.FirstName   = "Tesa";
                u9.LastName    = "Freeley";
                u9.Address     = "7352 Loftsgordon Court";
                u9.City        = "College Station";
                u9.State       = "TX";
                u9.Zip         = "77840";
                u9.UserStatus  = "Active";
                IdentityResult resultu9 = await _userManager.CreateAsync(u9, "mustangs");

                if (resultu9.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u9, "Customer");
                }
                AppUsers.Add(u9);

                AppUser u10 = new AppUser();
                u10.UserName    = "******";
                u10.Email       = "*****@*****.**";
                u10.PhoneNumber = "3767347949";
                u10.FirstName   = "Margaret";
                u10.LastName    = "Garcia";
                u10.Address     = "7 International Road";
                u10.City        = "Austin";
                u10.State       = "TX";
                u10.Zip         = "78756";
                u10.UserStatus  = "Active";
                IdentityResult resultu10 = await _userManager.CreateAsync(u10, "onetime");

                if (resultu10.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u10, "Customer");
                }
                AppUsers.Add(u10);

                AppUser u11 = new AppUser();
                u11.UserName    = "******";
                u11.Email       = "*****@*****.**";
                u11.PhoneNumber = "2198604221";
                u11.FirstName   = "Charles";
                u11.LastName    = "Haley";
                u11.Address     = "8 Warrior Trail";
                u11.City        = "Austin";
                u11.State       = "TX";
                u11.Zip         = "78746";
                u11.UserStatus  = "Active";
                IdentityResult resultu11 = await _userManager.CreateAsync(u11, "pepperoni");

                if (resultu11.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u11, "Customer");
                }
                AppUsers.Add(u11);

                AppUser u12 = new AppUser();
                u12.UserName    = "******";
                u12.Email       = "*****@*****.**";
                u12.PhoneNumber = "1222185888";
                u12.FirstName   = "Jeffrey";
                u12.LastName    = "Hampton";
                u12.Address     = "9107 Lighthouse Bay Road";
                u12.City        = "Austin";
                u12.State       = "TX";
                u12.Zip         = "78756";
                u12.UserStatus  = "Active";
                IdentityResult resultu12 = await _userManager.CreateAsync(u12, "raiders");

                if (resultu12.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u12, "Customer");
                }
                AppUsers.Add(u12);

                AppUser u13 = new AppUser();
                u13.UserName    = "******";
                u13.Email       = "*****@*****.**";
                u13.PhoneNumber = "5123071976";
                u13.FirstName   = "John";
                u13.LastName    = "Hearn";
                u13.Address     = "59784 Pierstorff Center";
                u13.City        = "Liberty";
                u13.State       = "TX";
                u13.Zip         = "77575";
                u13.UserStatus  = "Active";
                IdentityResult resultu13 = await _userManager.CreateAsync(u13, "jhearn22");

                if (resultu13.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u13, "Customer");
                }
                AppUsers.Add(u13);

                AppUser u14 = new AppUser();
                u14.UserName    = "******";
                u14.Email       = "*****@*****.**";
                u14.PhoneNumber = "1211949601";
                u14.FirstName   = "Anthony";
                u14.LastName    = "Hicks";
                u14.Address     = "932 Monica Way";
                u14.City        = "San Antonio";
                u14.State       = "TX";
                u14.Zip         = "78203";
                u14.UserStatus  = "Active";
                IdentityResult resultu14 = await _userManager.CreateAsync(u14, "hickhickup");

                if (resultu14.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u14, "Customer");
                }
                AppUsers.Add(u14);

                AppUser u15 = new AppUser();
                u15.UserName    = "******";
                u15.Email       = "*****@*****.**";
                u15.PhoneNumber = "1372121569";
                u15.FirstName   = "Brad";
                u15.LastName    = "Ingram";
                u15.Address     = "4 Lukken Court";
                u15.City        = "New Braunfels";
                u15.State       = "TX";
                u15.Zip         = "78132";
                u15.UserStatus  = "Active";
                IdentityResult resultu15 = await _userManager.CreateAsync(u15, "ingram2015");

                if (resultu15.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u15, "Customer");
                }
                AppUsers.Add(u15);

                AppUser u16 = new AppUser();
                u16.UserName    = "******";
                u16.Email       = "*****@*****.**";
                u16.PhoneNumber = "8543163836";
                u16.FirstName   = "Todd";
                u16.LastName    = "Jacobs";
                u16.Address     = "7 Susan Junction";
                u16.City        = "New York";
                u16.State       = "NY";
                u16.Zip         = "10101";
                u16.UserStatus  = "Active";
                IdentityResult resultu16 = await _userManager.CreateAsync(u16, "toddy25");

                if (resultu16.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u16, "Customer");
                }
                AppUsers.Add(u16);

                AppUser u17 = new AppUser();
                u17.UserName    = "******";
                u17.Email       = "*****@*****.**";
                u17.PhoneNumber = "3214163359";
                u17.FirstName   = "Victoria";
                u17.LastName    = "Lawrence";
                u17.Address     = "669 Oak Junction";
                u17.City        = "Lockhart";
                u17.State       = "TX";
                u17.Zip         = "78644";
                u17.UserStatus  = "Active";
                IdentityResult resultu17 = await _userManager.CreateAsync(u17, "something");

                if (resultu17.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u17, "Customer");
                }
                AppUsers.Add(u17);

                AppUser u18 = new AppUser();
                u18.UserName    = "******";
                u18.Email       = "*****@*****.**";
                u18.PhoneNumber = "2505265350";
                u18.FirstName   = "Erik";
                u18.LastName    = "Lineback";
                u18.Address     = "099 Luster Point";
                u18.City        = "Kingwood";
                u18.State       = "TX";
                u18.Zip         = "77325";
                u18.UserStatus  = "Active";
                IdentityResult resultu18 = await _userManager.CreateAsync(u18, "Password1");

                if (resultu18.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u18, "Customer");
                }
                AppUsers.Add(u18);

                AppUser u19 = new AppUser();
                u19.UserName    = "******";
                u19.Email       = "*****@*****.**";
                u19.PhoneNumber = "4070619503";
                u19.FirstName   = "Ernest";
                u19.LastName    = "Lowe";
                u19.Address     = "35473 Hansons Hill";
                u19.City        = "Beverly Hills";
                u19.State       = "CA";
                u19.Zip         = "90210";
                u19.UserStatus  = "Active";
                IdentityResult resultu19 = await _userManager.CreateAsync(u19, "aclfest2017");

                if (resultu19.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u19, "Customer");
                }
                AppUsers.Add(u19);

                AppUser u20 = new AppUser();
                u20.UserName    = "******";
                u20.Email       = "*****@*****.**";
                u20.PhoneNumber = "7358436110";
                u20.FirstName   = "Chuck";
                u20.LastName    = "Luce";
                u20.Address     = "4 Emmet Junction";
                u20.City        = "Navasota";
                u20.State       = "TX";
                u20.Zip         = "77868";
                u20.UserStatus  = "Active";
                IdentityResult resultu20 = await _userManager.CreateAsync(u20, "nothinggood");

                if (resultu20.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u20, "Customer");
                }
                AppUsers.Add(u20);

                AppUser u21 = new AppUser();
                u21.UserName    = "******";
                u21.Email       = "*****@*****.**";
                u21.PhoneNumber = "7240178229";
                u21.FirstName   = "Jennifer";
                u21.LastName    = "MacLeod";
                u21.Address     = "3 Orin Road";
                u21.City        = "Austin";
                u21.State       = "TX";
                u21.Zip         = "78712";
                u21.UserStatus  = "Active";
                IdentityResult resultu21 = await _userManager.CreateAsync(u21, "whatever");

                if (resultu21.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u21, "Customer");
                }
                AppUsers.Add(u21);

                AppUser u22 = new AppUser();
                u22.UserName    = "******";
                u22.Email       = "*****@*****.**";
                u22.PhoneNumber = "2495200223";
                u22.FirstName   = "Elizabeth";
                u22.LastName    = "Markham";
                u22.Address     = "8171 Commercial Crossing";
                u22.City        = "Austin";
                u22.State       = "TX";
                u22.Zip         = "78712";
                u22.UserStatus  = "Active";
                IdentityResult resultu22 = await _userManager.CreateAsync(u22, "snowsnow");

                if (resultu22.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u22, "Customer");
                }
                AppUsers.Add(u22);

                AppUser u23 = new AppUser();
                u23.UserName    = "******";
                u23.Email       = "*****@*****.**";
                u23.PhoneNumber = "4086179161";
                u23.FirstName   = "Clarence";
                u23.LastName    = "Martin";
                u23.Address     = "96 Anthes Place";
                u23.City        = "Schenectady";
                u23.State       = "NY";
                u23.Zip         = "12345";
                u23.UserStatus  = "Active";
                IdentityResult resultu23 = await _userManager.CreateAsync(u23, "whocares");

                if (resultu23.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u23, "Customer");
                }
                AppUsers.Add(u23);

                AppUser u24 = new AppUser();
                u24.UserName    = "******";
                u24.Email       = "*****@*****.**";
                u24.PhoneNumber = "9371927523";
                u24.FirstName   = "Gregory";
                u24.LastName    = "Martinez";
                u24.Address     = "10 Northridge Plaza";
                u24.City        = "Austin";
                u24.State       = "TX";
                u24.Zip         = "78717";
                u24.UserStatus  = "Active";
                IdentityResult resultu24 = await _userManager.CreateAsync(u24, "xcellent");

                if (resultu24.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u24, "Customer");
                }
                AppUsers.Add(u24);

                AppUser u25 = new AppUser();
                u25.UserName    = "******";
                u25.Email       = "*****@*****.**";
                u25.PhoneNumber = "5954063857";
                u25.FirstName   = "Charles";
                u25.LastName    = "Miller";
                u25.Address     = "87683 Schmedeman Circle";
                u25.City        = "Austin";
                u25.State       = "TX";
                u25.Zip         = "78727";
                u25.UserStatus  = "Active";
                IdentityResult resultu25 = await _userManager.CreateAsync(u25, "mydogspot");

                if (resultu25.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u25, "Customer");
                }
                AppUsers.Add(u25);

                AppUser u26 = new AppUser();
                u26.UserName    = "******";
                u26.Email       = "*****@*****.**";
                u26.PhoneNumber = "8929209512";
                u26.FirstName   = "Kelly";
                u26.LastName    = "Nelson";
                u26.Address     = "3244 Ludington Court";
                u26.City        = "Beaumont";
                u26.State       = "TX";
                u26.Zip         = "77720";
                u26.UserStatus  = "Active";
                IdentityResult resultu26 = await _userManager.CreateAsync(u26, "spotmydog");

                if (resultu26.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u26, "Customer");
                }
                AppUsers.Add(u26);

                AppUser u27 = new AppUser();
                u27.UserName    = "******";
                u27.Email       = "*****@*****.**";
                u27.PhoneNumber = "9226301774";
                u27.FirstName   = "Joe";
                u27.LastName    = "Nguyen";
                u27.Address     = "4780 Talisman Court";
                u27.City        = "San Marcos";
                u27.State       = "TX";
                u27.Zip         = "78667";
                u27.UserStatus  = "Active";
                IdentityResult resultu27 = await _userManager.CreateAsync(u27, "joejoejoe");

                if (resultu27.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u27, "Customer");
                }
                AppUsers.Add(u27);

                AppUser u28 = new AppUser();
                u28.UserName    = "******";
                u28.Email       = "*****@*****.**";
                u28.PhoneNumber = "2537646912";
                u28.FirstName   = "Bill";
                u28.LastName    = "O'Reilly";
                u28.Address     = "4154 Delladonna Plaza";
                u28.City        = "Bergheim";
                u28.State       = "TX";
                u28.Zip         = "78004";
                u28.UserStatus  = "Active";
                IdentityResult resultu28 = await _userManager.CreateAsync(u28, "billyboy");

                if (resultu28.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u28, "Customer");
                }
                AppUsers.Add(u28);

                AppUser u29 = new AppUser();
                u29.UserName    = "******";
                u29.Email       = "*****@*****.**";
                u29.PhoneNumber = "2182889379";
                u29.FirstName   = "Anka";
                u29.LastName    = "Radkovich";
                u29.Address     = "72361 Bayside Drive";
                u29.City        = "Austin";
                u29.State       = "TX";
                u29.Zip         = "78789";
                u29.UserStatus  = "Active";
                IdentityResult resultu29 = await _userManager.CreateAsync(u29, "radgirl");

                if (resultu29.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u29, "Customer");
                }
                AppUsers.Add(u29);

                AppUser u30 = new AppUser();
                u30.UserName    = "******";
                u30.Email       = "*****@*****.**";
                u30.PhoneNumber = "9532396075";
                u30.FirstName   = "Megan";
                u30.LastName    = "Rhodes";
                u30.Address     = "76875 Hoffman Point";
                u30.City        = "Orlando";
                u30.State       = "FL";
                u30.Zip         = "32830";
                u30.UserStatus  = "Active";
                IdentityResult resultu30 = await _userManager.CreateAsync(u30, "meganr34");

                if (resultu30.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u30, "Customer");
                }
                AppUsers.Add(u30);

                AppUser u31 = new AppUser();
                u31.UserName    = "******";
                u31.Email       = "*****@*****.**";
                u31.PhoneNumber = "7303815953";
                u31.FirstName   = "Eryn";
                u31.LastName    = "Rice";
                u31.Address     = "048 Elmside Park";
                u31.City        = "South Padre Island";
                u31.State       = "TX";
                u31.Zip         = "78597";
                u31.UserStatus  = "Active";
                IdentityResult resultu31 = await _userManager.CreateAsync(u31, "ricearoni");

                if (resultu31.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u31, "Customer");
                }
                AppUsers.Add(u31);

                AppUser u32 = new AppUser();
                u32.UserName    = "******";
                u32.Email       = "*****@*****.**";
                u32.PhoneNumber = "3677322422";
                u32.FirstName   = "Jorge";
                u32.LastName    = "Rodriguez";
                u32.Address     = "01 Browning Pass";
                u32.City        = "Austin";
                u32.State       = "TX";
                u32.Zip         = "78744";
                u32.UserStatus  = "Active";
                IdentityResult resultu32 = await _userManager.CreateAsync(u32, "alaskaboy");

                if (resultu32.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u32, "Customer");
                }
                AppUsers.Add(u32);

                AppUser u33 = new AppUser();
                u33.UserName    = "******";
                u33.Email       = "*****@*****.**";
                u33.PhoneNumber = "3911705385";
                u33.FirstName   = "Allen";
                u33.LastName    = "Rogers";
                u33.Address     = "844 Anderson Alley";
                u33.City        = "Canyon Lake";
                u33.State       = "TX";
                u33.Zip         = "78133";
                u33.UserStatus  = "Active";
                IdentityResult resultu33 = await _userManager.CreateAsync(u33, "bunnyhop");

                if (resultu33.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u33, "Customer");
                }
                AppUsers.Add(u33);

                AppUser u34 = new AppUser();
                u34.UserName    = "******";
                u34.Email       = "*****@*****.**";
                u34.PhoneNumber = "7351610920";
                u34.FirstName   = "Olivier";
                u34.LastName    = "Saint-Jean";
                u34.Address     = "1891 Docker Point";
                u34.City        = "Austin";
                u34.State       = "TX";
                u34.Zip         = "78779";
                u34.UserStatus  = "Active";
                IdentityResult resultu34 = await _userManager.CreateAsync(u34, "dustydusty");

                if (resultu34.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u34, "Customer");
                }
                AppUsers.Add(u34);

                AppUser u35 = new AppUser();
                u35.UserName    = "******";
                u35.Email       = "*****@*****.**";
                u35.PhoneNumber = "5269661692";
                u35.FirstName   = "Sarah";
                u35.LastName    = "Saunders";
                u35.Address     = "1469 Upham Road";
                u35.City        = "Austin";
                u35.State       = "TX";
                u35.Zip         = "78720";
                u35.UserStatus  = "Active";
                IdentityResult resultu35 = await _userManager.CreateAsync(u35, "jrod2017");

                if (resultu35.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u35, "Customer");
                }
                AppUsers.Add(u35);

                AppUser u36 = new AppUser();
                u36.UserName    = "******";
                u36.Email       = "*****@*****.**";
                u36.PhoneNumber = "1875727246";
                u36.FirstName   = "William";
                u36.LastName    = "Sewell";
                u36.Address     = "1672 Oak Valley Circle";
                u36.City        = "Austin";
                u36.State       = "TX";
                u36.Zip         = "78705";
                u36.UserStatus  = "Active";
                IdentityResult resultu36 = await _userManager.CreateAsync(u36, "martin1234");

                if (resultu36.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u36, "Customer");
                }
                AppUsers.Add(u36);

                AppUser u37 = new AppUser();
                u37.UserName    = "******";
                u37.Email       = "*****@*****.**";
                u37.PhoneNumber = "1394323615";
                u37.FirstName   = "Martin";
                u37.LastName    = "Sheffield";
                u37.Address     = "816 Kennedy Place";
                u37.City        = "Round Rock";
                u37.State       = "TX";
                u37.Zip         = "78680";
                u37.UserStatus  = "Active";
                IdentityResult resultu37 = await _userManager.CreateAsync(u37, "penguin12");

                if (resultu37.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u37, "Customer");
                }
                AppUsers.Add(u37);

                AppUser u38 = new AppUser();
                u38.UserName    = "******";
                u38.Email       = "*****@*****.**";
                u38.PhoneNumber = "6645937874";
                u38.FirstName   = "John";
                u38.LastName    = "Smith";
                u38.Address     = "0745 Golf Road";
                u38.City        = "Austin";
                u38.State       = "TX";
                u38.Zip         = "78760";
                u38.UserStatus  = "Active";
                IdentityResult resultu38 = await _userManager.CreateAsync(u38, "rogerthat");

                if (resultu38.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u38, "Customer");
                }
                AppUsers.Add(u38);

                AppUser u39 = new AppUser();
                u39.UserName    = "******";
                u39.Email       = "*****@*****.**";
                u39.PhoneNumber = "6470254680";
                u39.FirstName   = "Dustin";
                u39.LastName    = "Stroud";
                u39.Address     = "505 Dexter Plaza";
                u39.City        = "Sweet Home";
                u39.State       = "TX";
                u39.Zip         = "77987";
                u39.UserStatus  = "Active";
                IdentityResult resultu39 = await _userManager.CreateAsync(u39, "smitty444");

                if (resultu39.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u39, "Customer");
                }
                AppUsers.Add(u39);

                AppUser u40 = new AppUser();
                u40.UserName    = "******";
                u40.Email       = "*****@*****.**";
                u40.PhoneNumber = "7701621022";
                u40.FirstName   = "Eric";
                u40.LastName    = "Stuart";
                u40.Address     = "585 Claremont Drive";
                u40.City        = "Corpus Christi";
                u40.State       = "TX";
                u40.Zip         = "78412";
                u40.UserStatus  = "Active";
                IdentityResult resultu40 = await _userManager.CreateAsync(u40, "stewball");

                if (resultu40.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u40, "Customer");
                }
                AppUsers.Add(u40);

                AppUser u41 = new AppUser();
                u41.UserName    = "******";
                u41.Email       = "*****@*****.**";
                u41.PhoneNumber = "2181960061";
                u41.FirstName   = "Peter";
                u41.LastName    = "Stump";
                u41.Address     = "89035 Welch Circle";
                u41.City        = "Pflugerville";
                u41.State       = "TX";
                u41.Zip         = "78660";
                u41.UserStatus  = "Active";
                IdentityResult resultu41 = await _userManager.CreateAsync(u41, "slowwind");

                if (resultu41.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u41, "Customer");
                }
                AppUsers.Add(u41);

                AppUser u42 = new AppUser();
                u42.UserName    = "******";
                u42.Email       = "*****@*****.**";
                u42.PhoneNumber = "9908469499";
                u42.FirstName   = "Jeremy";
                u42.LastName    = "Tanner";
                u42.Address     = "4 Stang Trail";
                u42.City        = "Austin";
                u42.State       = "TX";
                u42.Zip         = "78702";
                u42.UserStatus  = "Active";
                IdentityResult resultu42 = await _userManager.CreateAsync(u42, "tanner5454");

                if (resultu42.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u42, "Customer");
                }
                AppUsers.Add(u42);

                AppUser u43 = new AppUser();
                u43.UserName    = "******";
                u43.Email       = "*****@*****.**";
                u43.PhoneNumber = "7011918647";
                u43.FirstName   = "Allison";
                u43.LastName    = "Taylor";
                u43.Address     = "726 Twin Pines Avenue";
                u43.City        = "Austin";
                u43.State       = "TX";
                u43.Zip         = "78713";
                u43.UserStatus  = "Active";
                IdentityResult resultu43 = await _userManager.CreateAsync(u43, "allyrally");

                if (resultu43.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u43, "Customer");
                }
                AppUsers.Add(u43);

                AppUser u44 = new AppUser();
                u44.UserName    = "******";
                u44.Email       = "*****@*****.**";
                u44.PhoneNumber = "8937910053";
                u44.FirstName   = "Rachel";
                u44.LastName    = "Taylor";
                u44.Address     = "06605 Sugar Drive";
                u44.City        = "Austin";
                u44.State       = "TX";
                u44.Zip         = "78712";
                u44.UserStatus  = "Active";
                IdentityResult resultu44 = await _userManager.CreateAsync(u44, "taylorbaylor");

                if (resultu44.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u44, "Customer");
                }
                AppUsers.Add(u44);

                AppUser u45 = new AppUser();
                u45.UserName    = "******";
                u45.Email       = "*****@*****.**";
                u45.PhoneNumber = "6394568913";
                u45.FirstName   = "Frank";
                u45.LastName    = "Tee";
                u45.Address     = "3567 Dawn Plaza";
                u45.City        = "Austin";
                u45.State       = "TX";
                u45.Zip         = "78786";
                u45.UserStatus  = "Active";
                IdentityResult resultu45 = await _userManager.CreateAsync(u45, "teeoff22");

                if (resultu45.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u45, "Customer");
                }
                AppUsers.Add(u45);

                AppUser u46 = new AppUser();
                u46.UserName    = "******";
                u46.Email       = "*****@*****.**";
                u46.PhoneNumber = "2676838676";
                u46.FirstName   = "Clent";
                u46.LastName    = "Tucker";
                u46.Address     = "704 Northland Alley";
                u46.City        = "San Antonio";
                u46.State       = "TX";
                u46.Zip         = "78279";
                u46.UserStatus  = "Active";
                IdentityResult resultu46 = await _userManager.CreateAsync(u46, "tucksack1");

                if (resultu46.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u46, "Customer");
                }
                AppUsers.Add(u46);

                AppUser u47 = new AppUser();
                u47.UserName    = "******";
                u47.Email       = "*****@*****.**";
                u47.PhoneNumber = "3452909754";
                u47.FirstName   = "Allen";
                u47.LastName    = "Velasco";
                u47.Address     = "72 Harbort Point";
                u47.City        = "Navasota";
                u47.State       = "TX";
                u47.Zip         = "77868";
                u47.UserStatus  = "Active";
                IdentityResult resultu47 = await _userManager.CreateAsync(u47, "meow88");

                if (resultu47.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u47, "Customer");
                }
                AppUsers.Add(u47);

                AppUser u48 = new AppUser();
                u48.UserName    = "******";
                u48.Email       = "*****@*****.**";
                u48.PhoneNumber = "8567089194";
                u48.FirstName   = "Janet";
                u48.LastName    = "Vino";
                u48.Address     = "1 Oak Valley Place";
                u48.City        = "Boston";
                u48.State       = "MA";
                u48.Zip         = "02114";
                u48.UserStatus  = "Active";
                IdentityResult resultu48 = await _userManager.CreateAsync(u48, "vinovino");

                if (resultu48.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u48, "Customer");
                }
                AppUsers.Add(u48);

                AppUser u49 = new AppUser();
                u49.UserName    = "******";
                u49.Email       = "*****@*****.**";
                u49.PhoneNumber = "6260784394";
                u49.FirstName   = "Jake";
                u49.LastName    = "West";
                u49.Address     = "48743 Banding Parkway";
                u49.City        = "Marble Falls";
                u49.State       = "TX";
                u49.Zip         = "78654";
                u49.UserStatus  = "Active";
                IdentityResult resultu49 = await _userManager.CreateAsync(u49, "gowest");

                if (resultu49.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u49, "Customer");
                }
                AppUsers.Add(u49);

                AppUser u50 = new AppUser();
                u50.UserName    = "******";
                u50.Email       = "*****@*****.**";
                u50.PhoneNumber = "3733971174";
                u50.FirstName   = "Louis";
                u50.LastName    = "Winthorpe";
                u50.Address     = "96850 Summit Crossing";
                u50.City        = "Austin";
                u50.State       = "TX";
                u50.Zip         = "78730";
                u50.UserStatus  = "Active";
                IdentityResult resultu50 = await _userManager.CreateAsync(u50, "louielouie");

                if (resultu50.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u50, "Customer");
                }
                AppUsers.Add(u50);

                AppUser u51 = new AppUser();
                u51.UserName    = "******";
                u51.Email       = "*****@*****.**";
                u51.PhoneNumber = "8433359800";
                u51.FirstName   = "Reagan";
                u51.LastName    = "Wood";
                u51.Address     = "18354 Bluejay Street";
                u51.City        = "Austin";
                u51.State       = "TX";
                u51.Zip         = "78712";
                u51.UserStatus  = "Active";
                IdentityResult resultu51 = await _userManager.CreateAsync(u51, "woodyman1");

                if (resultu51.Succeeded)
                {
                    await _userManager.AddToRoleAsync(u51, "Customer");
                }
                AppUsers.Add(u51);

                //loop through customers
                foreach (AppUser ur in AppUsers)
                {
                    //set name of User to help debug
                    customerEmail = ur.Email;

                    //see if repo exists in database
                    AppUser dbur = db.Users.FirstOrDefault(r => r.Email == ur.Email);

                    if (dbur == null)                     //user does not exist in database
                    {
                        db.Users.Add(ur);
                        db.SaveChanges();
                        intCustomersAdded += 1;
                    }
                    else
                    {
                        dbur.UserName    = ur.UserName;
                        dbur.Email       = ur.Email;
                        dbur.PhoneNumber = ur.PhoneNumber;
                        dbur.FirstName   = ur.FirstName;
                        dbur.LastName    = ur.LastName;
                        dbur.Address     = ur.Address;
                        dbur.City        = ur.City;
                        dbur.State       = ur.State;
                        dbur.Zip         = ur.Zip;
                        db.Update(dbur);
                        db.SaveChanges();
                    }
                }
            }
            catch
            {
                String msg = "Users added:" + intCustomersAdded + "; Error on " + customerEmail;
                throw new InvalidOperationException(msg);
            }
        }
        public async Task <IActionResult> OnPostConfirmationAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            // Get the information about the user from the external login provider
            var info = await _signInManager.GetExternalLoginInfoAsync();

            if (info == null)
            {
                ErrorMessage = "Error loading external login information during confirmation.";
                return(RedirectToPage("./Login", new { ReturnUrl = returnUrl }));
            }

            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName      = Input.Email,
                    Email         = Input.Email,
                    Name          = Input.Name,
                    StreetAddress = Input.StreetAddress,
                    City          = Input.City,
                    State         = Input.State,
                    PostalCode    = Input.PostalCode,
                    PhoneNumber   = Input.PhoneNumber
                };

                var result = await _userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user, SD.CustomerUser);

                    result = await _userManager.AddLoginAsync(user, info);

                    if (result.Succeeded)
                    {
                        _logger.LogInformation("User created an account using {Name} provider.", info.LoginProvider);

                        // If account confirmation is required, we need to show the link if we don't have a real email sender
                        if (_userManager.Options.SignIn.RequireConfirmedAccount)
                        {
                            return(RedirectToPage("./RegisterConfirmation", new { Email = Input.Email }));
                        }

                        await _signInManager.SignInAsync(user, isPersistent : false);

                        var userId = await _userManager.GetUserIdAsync(user);

                        var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                        code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                        var callbackUrl = Url.Page(
                            "/Account/ConfirmEmail",
                            pageHandler: null,
                            values: new { area = "Identity", userId = userId, code = code },
                            protocol: Request.Scheme);

                        await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                                                          $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            LoginProvider = info.LoginProvider;
            ReturnUrl     = returnUrl;
            return(Page());
        }
Beispiel #14
0
        public static async Task SeedData(DataContext context, UserManager <AppUser> userManager, RoleManager <IdentityRole> roleManager)
        {
            if (!userManager.Users.Any())
            {
                var users = new List <AppUser>
                {
                    new AppUser
                    {
                        DisplayName = "Joey",
                        UserName    = "******",
                        Email       = "*****@*****.**"
                    },
                    new AppUser
                    {
                        DisplayName = "Jeff",
                        UserName    = "******",
                        Email       = "*****@*****.**"
                    },
                    new AppUser
                    {
                        DisplayName = "Suzy",
                        UserName    = "******",
                        Email       = "*****@*****.**"
                    },
                    new AppUser
                    {
                        DisplayName = "Tech",
                        UserName    = "******",
                        Email       = "*****@*****.**"
                    }
                };

                foreach (var usr in users)
                {
                    await userManager.CreateAsync(usr, "Pa$$w0rd");
                }
            }

            IdentityResult roleResult;

            //Adding Admin Role
            //   var roleCheck = await roleManager.RoleExistsAsync("Admin");
            if (!roleManager.Roles.Any())
            {
                //create the roles and seed them to the database

                roleResult = await roleManager.CreateAsync(new IdentityRole("Admin"));

                roleResult = await roleManager.CreateAsync(new IdentityRole("Member"));
            }
            //Assign Admin role to the main User here we have given our newly registered
            //login id for Admin management
            var user = await userManager.FindByEmailAsync("*****@*****.**");

            await userManager.AddToRoleAsync(user, "Admin");

            user = await userManager.FindByEmailAsync("*****@*****.**");

            await userManager.AddToRoleAsync(user, "Admin");

            user = await userManager.FindByEmailAsync("*****@*****.**");

            await userManager.AddToRoleAsync(user, "Admin");

            user = await userManager.FindByEmailAsync("*****@*****.**");

            await userManager.AddToRoleAsync(user, "Member");
        }
Beispiel #15
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl      = returnUrl ?? Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                //var user = new IdentityUser { UserName = Input.Email, Email = Input.Email };
                var user = new ApplicationUser
                {
                    UserName    = Input.Email,
                    Email       = Input.Email,
                    CompanyId   = Input.CompanyId,
                    Street      = Input.Street,
                    City        = Input.City,
                    State       = Input.State,
                    PostalCode  = Input.PostalCode,
                    Name        = Input.Name,
                    PhoneNumber = Input.PhoneNumber,
                    Role        = Input.Role
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    if (!await _roleManager.RoleExistsAsync(ProjectConstant.Role_Admin))
                    {
                        await _roleManager.CreateAsync(new IdentityRole(ProjectConstant.Role_Admin));
                    }
                    if (!await _roleManager.RoleExistsAsync(ProjectConstant.Role_Employee))
                    {
                        await _roleManager.CreateAsync(new IdentityRole(ProjectConstant.Role_Employee));
                    }
                    if (!await _roleManager.RoleExistsAsync(ProjectConstant.Role_User_Comp))
                    {
                        await _roleManager.CreateAsync(new IdentityRole(ProjectConstant.Role_User_Comp));
                    }
                    if (!await _roleManager.RoleExistsAsync(ProjectConstant.Role_User_Indi))
                    {
                        await _roleManager.CreateAsync(new IdentityRole(ProjectConstant.Role_User_Indi));
                    }

                    //await _userManager.AddToRoleAsync(user, ProjectConstant.Role_Admin);
                    if (user.Role == null)
                    {
                        await _userManager.AddToRoleAsync(user, ProjectConstant.Role_User_Indi);
                    }
                    else
                    {
                        if (user.CompanyId > 0)
                        {
                            await _userManager.AddToRoleAsync(user, ProjectConstant.Role_User_Comp);
                        }
                        await _userManager.AddToRoleAsync(user, user.Role);
                    }


                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    //var callbackUrl = Url.Page(
                    //    "/Account/ConfirmEmail",
                    //    pageHandler: null,
                    //    values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
                    //    protocol: Request.Scheme);

                    //await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                    //    $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl }));
                    }
                    else
                    {
                        if (user.Role == null)
                        {
                            await _signInManager.SignInAsync(user, isPersistent : false);

                            return(LocalRedirect(returnUrl));
                        }
                        else
                        {
                            return(RedirectToAction("Index", "User", new { Area = "Admin" }));
                        }
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
Beispiel #16
0
        public async Task <IActionResult> Edit(String id, [Bind("UserName, Email")] Benutzer model, String Role)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var user = await userManager.FindByIdAsync(id);

                    var newName = user.UserName;

                    if (model.UserName == null) // Fall: Benutzername ist leer.
                    {
                        toastNotification.AddToastMessage("Kein Benutzername eingegeben", "Es muss ein Benutzername vergeben werden.", ToastEnums.ToastType.Error, new ToastOption()
                        {
                            PositionClass = ToastPositions.TopCenter
                        });

                        return(RedirectToAction(nameof(Edit)));
                    }
                    else if (model.Email == null) // Fall: Email ist leer.
                    {
                        toastNotification.AddToastMessage("Kein Email eingegeben", "Es muss eine Email-Adresse vergeben werden.", ToastEnums.ToastType.Error, new ToastOption()
                        {
                            PositionClass = ToastPositions.TopCenter
                        });

                        return(RedirectToAction(nameof(Edit)));
                    }
                    else
                    {
                        // Fall: Der Benutzername wurde geändert.
                        if (model.UserName != newName)
                        {
                            var userExist = bibContext.Benutzer.SingleOrDefault(b => b.UserName == model.UserName);

                            // Fall: Der neue Benutzername existiert bereits in der Datenbank.
                            if (userExist != null)
                            {
                                toastNotification.AddToastMessage("Benutzername bereits vergeben", "Der Benutzername \"" + model.UserName + "\" ist bereits vergeben.", ToastEnums.ToastType.Error, new ToastOption()
                                {
                                    PositionClass = ToastPositions.TopCenter
                                });

                                return(RedirectToAction(nameof(Edit)));
                            }

                            // Alle bisherigern Referenzen auf den neuen Namen ändern
                            var warenkorb = bibContext.Warenkorb.Where(e => e.Benutzer.Equals(user.UserName));
                            foreach (var warenkorbExemplar in warenkorb)
                            {
                                warenkorbExemplar.Benutzer = model.UserName;
                                bibContext.Warenkorb.Update(warenkorbExemplar);
                            }

                            var leihauftraege = bibContext.Leihauftrag.Where(e => e.Benutzer.Equals(user.UserName));
                            foreach (var leihauftrag in leihauftraege)
                            {
                                leihauftrag.Benutzer = model.UserName;
                                bibContext.Leihauftrag.Update(leihauftrag);
                            }

                            await bibContext.SaveChangesAsync();

                            var setNameResult = await userManager.SetUserNameAsync(user, model.UserName);
                        }

                        // Fall: Die Email-Adresse wurde geändert
                        if (user.Email != model.Email)
                        {
                            await userManager.SetEmailAsync(user, model.Email);
                        }

                        // Rolle des Benutzers wird für die Datenbank aktualisiert
                        if (Role == "Admin")
                        {
                            var role = await userManager.GetRolesAsync(user);

                            await userManager.RemoveFromRolesAsync(user, role);

                            await userManager.AddToRoleAsync(user, "Admin");

                            user.Role = "Admin";
                            bibContext.Update(user);
                            bibContext.SaveChanges();
                            toastNotification.AddToastMessage("Benutzerdaten geändert", "Die Benutzerdaten von \"" + user.UserName + "\" wurden geändert.", ToastEnums.ToastType.Success, new ToastOption()
                            {
                                PositionClass = ToastPositions.TopCenter
                            });
                            return(RedirectToAction(nameof(Index)));
                        }
                        if (Role == "Member")
                        {
                            var role = await userManager.GetRolesAsync(user);

                            await userManager.RemoveFromRolesAsync(user, role);

                            await userManager.AddToRoleAsync(user, "Member");

                            user.Role = "Member";
                            bibContext.Update(user);
                            bibContext.SaveChanges();
                            toastNotification.AddToastMessage("Benutzerdaten geändert", "Der Benutzerdaten von \"" + user.UserName + "\" wurden geändert.", ToastEnums.ToastType.Success, new ToastOption()
                            {
                                PositionClass = ToastPositions.TopCenter
                            });
                            return(RedirectToAction(nameof(Index)));
                        }
                    }

                    return(RedirectToAction(nameof(Index)));
                }
                catch (DbUpdateConcurrencyException)
                {
                    throw;
                }
            }
            return(RedirectToAction(nameof(Index)));
        }
Beispiel #17
0
        public static async Task Initialize(ApplicationDbContext context,
                                            UserManager <User> userManager,
                                            RoleManager <Role> roleManager)
        {
            context.Database.EnsureCreated();

            String adminId1 = "";
            String adminId2 = "";

            string role1 = "Admin";
            string desc1 = "This is the administrator role";

            string role2 = "Member";
            string desc2 = "This is the members role";

            string password = "******";

            if (await roleManager.FindByNameAsync(role1) == null)
            {
                await roleManager.CreateAsync(new Role(role1, desc1, DateTime.Now));
            }
            if (await roleManager.FindByNameAsync(role2) == null)
            {
                await roleManager.CreateAsync(new Role(role2, desc2, DateTime.Now));
            }

            if (await userManager.FindByNameAsync("*****@*****.**") == null)
            {
                var user = new User
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    FirstName   = "Adam",
                    LastName    = "Aldridge",
                    Street      = "Fake St",
                    City        = "Vancouver",
                    Province    = "BC",
                    PostalCode  = "V5U K8I",
                    Country     = "Canada",
                    PhoneNumber = "6902341234"
                };

                var result = await userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    await userManager.AddPasswordAsync(user, password);

                    await userManager.AddToRoleAsync(user, role1);
                }
                adminId1 = user.Id;
            }

            if (await userManager.FindByNameAsync("*****@*****.**") == null)
            {
                var user = new User
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    FirstName   = "Bob",
                    LastName    = "Barker",
                    Street      = "Vermont St",
                    City        = "Surrey",
                    Province    = "BC",
                    PostalCode  = "V1P I5T",
                    Country     = "Canada",
                    PhoneNumber = "7788951456"
                };

                var result = await userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    await userManager.AddPasswordAsync(user, password);

                    await userManager.AddToRoleAsync(user, role1);
                }
                adminId2 = user.Id;
            }

            if (await userManager.FindByNameAsync("*****@*****.**") == null)
            {
                var user = new User
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    FirstName   = "Mike",
                    LastName    = "Myers",
                    Street      = "Yew St",
                    City        = "Vancouver",
                    Province    = "BC",
                    PostalCode  = "V3U E2Y",
                    Country     = "Canada",
                    PhoneNumber = "6572136821"
                };

                var result = await userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    await userManager.AddPasswordAsync(user, password);

                    await userManager.AddToRoleAsync(user, role2);
                }
            }

            if (await userManager.FindByNameAsync("*****@*****.**") == null)
            {
                var user = new User
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    FirstName   = "Donald",
                    LastName    = "Duck",
                    Street      = "Well St",
                    City        = "Vancouver",
                    Province    = "BC",
                    PostalCode  = "V8U R9Y",
                    Country     = "Canada",
                    PhoneNumber = "6041234567"
                };

                var result = await userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    await userManager.AddPasswordAsync(user, password);

                    await userManager.AddToRoleAsync(user, role2);
                }
            }
        }
Beispiel #18
0
        public async Task <List <ValidationResult> > SetupUser(SetupUserViewModel userViewModel)
        {
            bool isValid = Validator.TryValidateObject(userViewModel, new ValidationContext(userViewModel, null, null), results, false);

            if (!isValid)
            {
                return(results);
            }

            Enum.TryParse(typeof(UserTypes), userViewModel.UserType.ToString(), out object userType);

            var user = new ImanageUser()
            {
                UserName   = userViewModel.Email,
                LastName   = userViewModel.LastName,
                FirstName  = userViewModel.FirstName,
                MiddleName = userViewModel.MiddleName,
                Gender     = userViewModel.Gender,
                Email      = userViewModel.Email,
                UserType   = (UserTypes)userType
            };

            Enum.TryParse(typeof(UserRoles), userViewModel.Role.ToString(), out object role);
            var status = await CreateIdentityUser(user);

            userViewModel.Role = (int)role;

            if (status.Any())
            {
                return(results);
            }

            userViewModel.User_Id = user.Id.ToString();
            var createResult = await CreateUserType(userViewModel, user, (UserTypes)userType);

            if (!createResult.Any())
            {
                user.UserTypeId = Guid.Parse(userViewModel.UserType_Id);
                await _userManager.UpdateAsync(user);

                var roleName = role.ToString();

                if (!await _roleManager.RoleExistsAsync(roleName))
                {
                    await _roleManager.CreateAsync(new ImanageRole()
                    {
                        Name = roleName
                    });
                }

                await _userManager.AddToRoleAsync(user, roleName);
                await AssignDefaultPermission(user, roleName);

                userViewModel.RoleName = roleName;
            }
            else
            {
                await _userManager.DeleteAsync(user);
            }

            return(createResult);
        }
Beispiel #19
0
        public async Task Seed()
        {
            if (!_roleManager.Roles.Any())
            {
                await _roleManager.CreateAsync(new AppRole()
                {
                    Name           = "Admin",
                    NormalizedName = "Admin",
                    Description    = "Administrator"
                });

                await _roleManager.CreateAsync(new AppRole()
                {
                    Name           = "Manager",
                    NormalizedName = "Manager",
                    Description    = "Manager"
                });

                await _roleManager.CreateAsync(new AppRole()
                {
                    Name           = "Staff",
                    NormalizedName = "Staff",
                    Description    = "Staff"
                });

                await _roleManager.CreateAsync(new AppRole()
                {
                    Name           = "Customer",
                    NormalizedName = "Customer",
                    Description    = "Customer"
                });
            }

            if (!_userManager.Users.Any())
            {
                await _userManager.CreateAsync(new AppUser()
                {
                    UserName     = "******",
                    FullName     = "Administrator",
                    Email        = "*****@*****.**",
                    Balance      = 0,
                    DateCreated  = DateTime.Now,
                    DateModified = DateTime.Now,
                    Active       = true
                }, "123");

                var user = await _userManager.FindByNameAsync("admin");

                await _userManager.AddToRoleAsync(user, "Admin");
            }

            if (!_context.Contacts.Any())
            {
                _context.Contacts.Add(new Contact()
                {
                    Id      = CommonConstants.DefaultContactId,
                    Address = "Ngõ 168, đường Vương Thừa Vũ, quận Thanh Xuân, Hà Nội",
                    Email   = "*****@*****.**",
                    Name    = "GymNutri",
                    Phone   = "0974 240 911",
                    Website = "http://GymNutri.com",
                    Lat     = 21.0435009,
                    Lng     = 105.7894758,
                    Active  = true
                });
            }

            if (_context.Functions.Count() == 0)
            {
                _context.Functions.AddRange(new List <Function>()
                {
                    new Function()
                    {
                        Id = "Business", Name = "Business", ParentId = null, OrderNo = 1, Active = true, Url = "/", IconCss = "fa fa-building"
                    },
                    new Function()
                    {
                        Id = "MemberCard", Name = "Member Card", ParentId = "Business", OrderNo = 1, Active = true, Url = "/Admin/MemberCard/Index", IconCss = "fa fa-credit-card-alt"
                    },
                    new Function()
                    {
                        Id = "DaisyOrder", Name = "Daisy Order", ParentId = "Business", OrderNo = 2, Active = true, Url = "/Admin/DaisyOrder/Index", IconCss = "fa fa-folder-o"
                    },

                    new Function()
                    {
                        Id = "Category", Name = "Category", ParentId = null, OrderNo = 1, Active = true, Url = "/", IconCss = "fa fa-th-list"
                    },
                    new Function()
                    {
                        Id = "CommonCategory", Name = "Common Category", ParentId = "Category", OrderNo = 1, Active = true, Url = "/Admin/CommonCategory/Index", IconCss = "fa fa-list-ol"
                    },
                    new Function()
                    {
                        Id = "StatusCategory", Name = "Status Category", ParentId = "Category", OrderNo = 2, Active = true, Url = "/Admin/StatusCategory/Index", IconCss = "fa fa-star-half-o"
                    },

                    new Function()
                    {
                        Id = "CustomerRelated", Name = "Related To Customer", ParentId = null, OrderNo = 2, Active = true, Url = "/", IconCss = "fa fa-user"
                    },
                    new Function()
                    {
                        Id = "Customer", Name = "Customer", ParentId = "CustomerRelated", OrderNo = 1, Active = true, Url = "/Admin/Customer/Index", IconCss = "fa fa-user-plus"
                    },
                    new Function()
                    {
                        Id = "BodyClassification", Name = "Body Classification", ParentId = "CustomerRelated", OrderNo = 2, Active = true, Url = "/Admin/BodyClassification/Index", IconCss = "fa fa-male"
                    },

                    new Function()
                    {
                        Id = "System", Name = "System", ParentId = null, OrderNo = 3, Active = true, Url = "/", IconCss = "fa fa-cog"
                    },
                    new Function()
                    {
                        Id = "Role", Name = "Role", ParentId = "System", OrderNo = 1, Active = true, Url = "/Admin/Role/Index", IconCss = "fa fa-id-card"
                    },
                    new Function()
                    {
                        Id = "User", Name = "User", ParentId = "System", OrderNo = 2, Active = true, Url = "/Admin/User/Index", IconCss = "fa fa-users"
                    },

                    new Function()
                    {
                        Id = "FoodRelated", Name = "Related To Food", ParentId = null, OrderNo = 4, Active = true, Url = "/", IconCss = "fa fa-apple"
                    },
                    new Function()
                    {
                        Id = "FoodCategory", Name = "Food Category", ParentId = "FoodRelated", OrderNo = 1, Active = true, Url = "/Admin/FoodCategory/Index", IconCss = "fa fa-external-link"
                    },
                    new Function()
                    {
                        Id = "Food", Name = "Food", ParentId = "FoodRelated", OrderNo = 2, Active = true, Url = "/Admin/Food/Index", IconCss = "fa fa-pie-chart"
                    },
                    new Function()
                    {
                        Id = "SetOfFood", Name = "Set Of Food", ParentId = "FoodRelated", OrderNo = 3, Active = true, Url = "/Admin/SetOfFood/Index", IconCss = "fa fa-bars"
                    },
                    new Function()
                    {
                        Id = "FoodPrice", Name = "Food Price", ParentId = "FoodRelated", OrderNo = 4, Active = true, Url = "/Admin/FoodPrice/Index", IconCss = "fa fa-money"
                    },
                    new Function()
                    {
                        Id = "Meal", Name = "Meal", ParentId = "FoodRelated", OrderNo = 5, Active = true, Url = "/Admin/Meal/Index", IconCss = "fa fa-circle-o"
                    },

                    new Function()
                    {
                        Id = "Template", Name = "Template", ParentId = null, OrderNo = 5, Active = true, Url = "/", IconCss = "fa fa-folder-open"
                    },
                    new Function()
                    {
                        Id = "TemplateMenu", Name = "Template Menu", ParentId = "Template", OrderNo = 1, Active = true, Url = "/Admin/TemplateMenu/Index", IconCss = "fa fa-road"
                    },

                    new Function()
                    {
                        Id = "Utility", Name = "Utility", ParentId = null, OrderNo = 6, Active = true, Url = "/", IconCss = "fa fa-clone"
                    },
                    new Function()
                    {
                        Id = "Footer", Name = "Footer", ParentId = "Utility", OrderNo = 1, Active = true, Url = "/Admin/Footer/Index", IconCss = "fa fa-fort-awesome"
                    },
                    new Function()
                    {
                        Id = "Feedback", Name = "Feedback", ParentId = "Utility", OrderNo = 2, Active = true, Url = "/Admin/Feedback/Index", IconCss = "fa fa-comments"
                    },
                    new Function()
                    {
                        Id = "Announcement", Name = "Announcement", ParentId = "Utility", OrderNo = 3, Active = true, Url = "/Admin/Announcement/Index", IconCss = "fa fa-comment"
                    },
                    new Function()
                    {
                        Id = "Contact", Name = "Contact", ParentId = "Utility", OrderNo = 4, Active = true, Url = "/Admin/Contact/Index", IconCss = "fa fa-address-book"
                    },
                    new Function()
                    {
                        Id = "Slide", Name = "Slide", ParentId = "Utility", OrderNo = 5, Active = true, Url = "/Admin/Slide/Index", IconCss = "fa fa-picture-o"
                    },
                    new Function()
                    {
                        Id = "Advertisment", Name = "Advertisment", ParentId = "Utility", OrderNo = 6, Active = true, Url = "/Admin/Advertisement/Index", IconCss = "fa fa-eye"
                    },
                });
            }

            if (_context.Footers.Count(x => x.Id == CommonConstants.DefaultFooterId) == 0)
            {
                string content = "Footer";
                _context.Footers.Add(new Footer()
                {
                    Id      = CommonConstants.DefaultFooterId,
                    Content = content
                });
            }

            if (_context.Slides.Count() == 0)
            {
                List <Slide> slides = new List <Slide>()
                {
                    new Slide()
                    {
                        Name = "Slide 01", Image = "/client-side/images/slider/slide-1.jpg", Url = "#", DisplayOrder = 0, GroupAlias = "top", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 02", Image = "/client-side/images/slider/slide-2.jpg", Url = "#", DisplayOrder = 1, GroupAlias = "top", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 03", Image = "/client-side/images/slider/slide-3.jpg", Url = "#", DisplayOrder = 2, GroupAlias = "top", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 01", Image = "/client-side/images/brand1.png", Url = "#", DisplayOrder = 1, GroupAlias = "brand", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 02", Image = "/client-side/images/brand2.png", Url = "#", DisplayOrder = 2, GroupAlias = "brand", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 03", Image = "/client-side/images/brand3.png", Url = "#", DisplayOrder = 3, GroupAlias = "brand", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 04", Image = "/client-side/images/brand4.png", Url = "#", DisplayOrder = 4, GroupAlias = "brand", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 05", Image = "/client-side/images/brand5.png", Url = "#", DisplayOrder = 5, GroupAlias = "brand", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 06", Image = "/client-side/images/brand6.png", Url = "#", DisplayOrder = 6, GroupAlias = "brand", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 07", Image = "/client-side/images/brand7.png", Url = "#", DisplayOrder = 7, GroupAlias = "brand", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 08", Image = "/client-side/images/brand8.png", Url = "#", DisplayOrder = 8, GroupAlias = "brand", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 09", Image = "/client-side/images/brand9.png", Url = "#", DisplayOrder = 9, GroupAlias = "brand", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 10", Image = "/client-side/images/brand10.png", Url = "#", DisplayOrder = 10, GroupAlias = "brand", Active = true
                    },
                    new Slide()
                    {
                        Name = "Slide 11", Image = "/client-side/images/brand11.png", Url = "#", DisplayOrder = 11, GroupAlias = "brand", Active = true
                    },
                };
                _context.Slides.AddRange(slides);
            }

            if (!_context.SystemConfigs.Any(x => x.Id == "HomeTitle"))
            {
                _context.SystemConfigs.Add(new SystemConfig()
                {
                    Id     = "HomeTitle",
                    Name   = "Home's title",
                    Value1 = "Gym Nutri",
                    Active = true
                });
            }

            if (!_context.SystemConfigs.Any(x => x.Id == "HomeMetaKeyword"))
            {
                _context.SystemConfigs.Add(new SystemConfig()
                {
                    Id     = "HomeMetaKeyword",
                    Name   = "Home Keyword",
                    Value1 = "Gym, Nutrition",
                    Active = true
                });
            }

            if (!_context.SystemConfigs.Any(x => x.Id == "HomeMetaDescription"))
            {
                _context.SystemConfigs.Add(new SystemConfig()
                {
                    Id     = "HomeMetaDescription",
                    Name   = "Home Description",
                    Value1 = "Home Gym nutrition",
                    Active = true
                });
            }

            if (_context.AdvertisementPages.Count() == 0)
            {
                List <AdvertisementPage> pages = new List <AdvertisementPage>()
                {
                    new AdvertisementPage()
                    {
                        Id = "home", Name = "Home", AdvertisementPositions = new List <AdvertisementPosition>()
                        {
                            new AdvertisementPosition()
                            {
                                Id = "home-left", Name = "Bên trái"
                            }
                        }
                    },
                    new AdvertisementPage()
                    {
                        Id = "product-cate", Name = "Product category",
                        AdvertisementPositions = new List <AdvertisementPosition>()
                        {
                            new AdvertisementPosition()
                            {
                                Id = "product-cate-left", Name = "Bên trái"
                            }
                        }
                    },
                    new AdvertisementPage()
                    {
                        Id = "product-detail", Name = "Product detail",
                        AdvertisementPositions = new List <AdvertisementPosition>()
                        {
                            new AdvertisementPosition()
                            {
                                Id = "product-detail-left", Name = "Bên trái"
                            }
                        }
                    },
                };
                _context.AdvertisementPages.AddRange(pages);
            }

            if (_context.BodyClassifications.Count() == 0)
            {
                List <BodyClassification> bodyClassifications = new List <BodyClassification>()
                {
                    new BodyClassification()
                    {
                        GroupCode   = "BodyType",
                        Code        = "Ectomorph",
                        Name        = "Ectomorph",
                        Description = "Tạng người gầy",
                        Active      = true
                    },
                    new BodyClassification()
                    {
                        GroupCode   = "BodyType",
                        Code        = "Mesomorph",
                        Name        = "Mesomorph",
                        Description = "Tạng người cơ bắp",
                        Active      = true
                    },
                    new BodyClassification()
                    {
                        GroupCode   = "BodyType",
                        Code        = "Endomorph",
                        Name        = "Endomorph",
                        Description = "Tạng người béo",
                        Active      = true
                    }
                };
                _context.BodyClassifications.AddRange(bodyClassifications);
            }

            if (_context.CommonCategories.Count() == 0)
            {
                List <CommonCategory> commonCategories = new List <CommonCategory>()
                {
                    new CommonCategory()
                    {
                        GroupCode   = "FoodType",
                        Code        = "Eating",
                        Name        = "Đồ ăn",
                        Active      = true,
                        UserCreated = "*****@*****.**"
                    },
                    new CommonCategory()
                    {
                        GroupCode   = "FoodType",
                        Code        = "Beverage",
                        Name        = "Đồ uống",
                        Active      = true,
                        UserCreated = "*****@*****.**"
                    }
                };
                _context.CommonCategories.AddRange(commonCategories);
            }

            if (_context.FoodCategories.Count() == 0)
            {
                List <FoodCategory> foodCategories = new List <FoodCategory>()
                {
                    new FoodCategory()
                    {
                        Code         = "main",
                        Name         = "Món chính",
                        FoodTypeCode = "Eating",
                        OrderNo      = 1,
                        Active       = true,
                        UserCreated  = "*****@*****.**"
                    }
                };
                _context.FoodCategories.AddRange(foodCategories);
            }

            if (_context.Foods.Count() == 0)
            {
                List <Food> foods = new List <Food>()
                {
                    new Food()
                    {
                        Code           = "beef",
                        Name           = "Thịt bò xào tổng hợp",
                        FoodCategoryId = 1,
                        Description    = "Món ăn quen thuộc nhưng để làm ngon cũng không phải là dễ dàng",
                        UserCreated    = "*****@*****.**",
                        Active         = true
                    },
                    new Food()
                    {
                        Code           = "chicken",
                        Name           = "Gà xào xả ớt",
                        FoodCategoryId = 1,
                        Description    = "Ngon ngon, lạ miệng, dễ làm",
                        UserCreated    = "*****@*****.**",
                        Active         = true
                    }
                };
                _context.Foods.AddRange(foods);
            }

            if (_context.StatusCategories.Count() == 0)
            {
                List <StatusCategory> statusCategories = new List <StatusCategory>()
                {
                    new StatusCategory()
                    {
                        Code    = "vip",
                        Name    = "Vip",
                        OrderNo = 1,
                        Table   = "User",
                        Active  = true
                    },
                    new StatusCategory()
                    {
                        Code    = "done",
                        Name    = "Done",
                        OrderNo = 1,
                        Table   = "Order",
                        Active  = true
                    }
                };
                _context.StatusCategories.AddRange(statusCategories);
            }

            await _context.SaveChangesAsync();
        }
        public async Task <IActionResult> OnPostConfirmationAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            // Get the information about the user from the external login provider
            var info = await _signInManager.GetExternalLoginInfoAsync();

            if (info == null)
            {
                ErrorMessage = "rro ao tentar recuperar informações do provedor externo.";
                return(RedirectToPage("./Login", new { ReturnUrl = returnUrl }));
            }

            if (ModelState.IsValid)
            {
                var user = new IdentityUser {
                    UserName = Input.Email, Email = Input.Email
                };
                using var transaction = _context.Database.BeginTransaction();

                var result = await _userManager.CreateAsync(user);

                await _userManager.AddToRoleAsync(user, "ADMIN");

                transaction.Commit();

                if (result.Succeeded)
                {
                    result = await _userManager.AddLoginAsync(user, info);

                    if (result.Succeeded)
                    {
                        _logger.LogInformation("Usuario criado com o provedor {Name}.", info.LoginProvider);

                        /*var userId = await _userManager.GetUserIdAsync(user);
                         * var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                         * code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                         * var callbackUrl = Url.Page(
                         *  "/Account/ConfirmEmail",
                         *  pageHandler: null,
                         *  values: new { area = "Identity", userId = userId, code = code },
                         *  protocol: Request.Scheme);
                         *
                         * await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                         *  $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");
                         *
                         * // If account confirmation is required, we need to show the link if we don't have a real email sender
                         * if (_userManager.Options.SignIn.RequireConfirmedAccount)
                         * {
                         *  return RedirectToPage("./RegisterConfirmation", new { Email = Input.Email });
                         * }*/

                        await _signInManager.SignInAsync(user, isPersistent : false, info.LoginProvider);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            ProviderDisplayName = info.ProviderDisplayName;
            ReturnUrl           = returnUrl;
            return(Page());
        }
Beispiel #21
0
        public static void SeedUsers(UserManager <MyUser> userManager)
        {
            // admin
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser admin = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    DepartmentId   = 1
                };

                IdentityResult result = userManager.CreateAsync(admin, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(admin, "Admin").Wait();
                    userManager.AddToRoleAsync(admin, "Manager").Wait();
                    userManager.AddToRoleAsync(admin, "Employee").Wait();
                }
            }

            // manager (IT department - 1), employee
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser manager = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Aris",
                    LastName       = "Kallergis",
                    CostPerHour    = 20,
                    DepartmentId   = 1
                };

                IdentityResult result = userManager.CreateAsync(manager, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(manager, "Manager").Wait();
                    userManager.AddToRoleAsync(manager, "Employee").Wait();
                }
            }

            // manager (R&D department - 2), employee
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser manager = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Mary",
                    LastName       = "Ksenou",
                    CostPerHour    = 20,
                    DepartmentId   = 2
                };

                IdentityResult result = userManager.CreateAsync(manager, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(manager, "Manager").Wait();
                    userManager.AddToRoleAsync(manager, "Employee").Wait();
                }
            }

            // manager (R&D department - 2), employee
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser manager = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Nikos",
                    LastName       = "Dimitriou",
                    CostPerHour    = 20,
                    DepartmentId   = 2
                };

                IdentityResult result = userManager.CreateAsync(manager, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(manager, "Manager").Wait();
                    userManager.AddToRoleAsync(manager, "Employee").Wait();
                }
            }

            // manager (HR department - 3), employee
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser manager = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Xrysa",
                    LastName       = "Xrystopoulou",
                    CostPerHour    = 20,
                    DepartmentId   = 3
                };

                IdentityResult result = userManager.CreateAsync(manager, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(manager, "Manager").Wait();
                    userManager.AddToRoleAsync(manager, "Employee").Wait();
                }
            }

            // manager (Accounting department - 4), employee
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser manager = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Mike",
                    LastName       = "Scott",
                    CostPerHour    = 20,
                    DepartmentId   = 4
                };

                IdentityResult result = userManager.CreateAsync(manager, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(manager, "Manager").Wait();
                    userManager.AddToRoleAsync(manager, "Employee").Wait();
                }
            }

            // employee (with manager Admin)
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser employee = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Charalampos",
                    LastName       = "Makrylakis",
                    CostPerHour    = 10,
                    DepartmentId   = 1,
                    ManagerId      = userManager.FindByEmailAsync("*****@*****.**").Result.Id // Id of Aris
                };

                IdentityResult result = userManager.CreateAsync(employee, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(employee, "Employee").Wait();
                }
            }

            // employee (with manager Mary)
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser employee = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Kostas",
                    LastName       = "Tsak",
                    CostPerHour    = 10,
                    DepartmentId   = 2,
                    ManagerId      = userManager.FindByEmailAsync("*****@*****.**").Result.Id // Id of Mary
                };

                IdentityResult result = userManager.CreateAsync(employee, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(employee, "Employee").Wait();
                }
            }

            // employee (with manager Mary)
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser employee = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Dimitris",
                    LastName       = "Pitsios",
                    CostPerHour    = 10,
                    DepartmentId   = 2,
                    ManagerId      = userManager.FindByEmailAsync("*****@*****.**").Result.Id // Id of Mary
                };

                IdentityResult result = userManager.CreateAsync(employee, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(employee, "Employee").Wait();
                }
            }

            // employee (with manager Nikos)
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser employee = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Iosif",
                    LastName       = "Gemenitzoglou",
                    CostPerHour    = 10,
                    DepartmentId   = 2,
                    ManagerId      = userManager.FindByEmailAsync("*****@*****.**").Result.Id // Id of Nikos (manager)
                };

                IdentityResult result = userManager.CreateAsync(employee, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(employee, "Employee").Wait();
                }
            }

            // employee (with manager Nikos)
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser employee = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Iosif",
                    LastName       = "Gemenitzoglou",
                    CostPerHour    = 10,
                    DepartmentId   = 2,
                    ManagerId      = userManager.FindByEmailAsync("*****@*****.**").Result.Id // Id of Nikos (manager)
                };

                IdentityResult result = userManager.CreateAsync(employee, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(employee, "Employee").Wait();
                }
            }

            // employee (with manager Aris)
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser employee = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Eleni",
                    LastName       = "Vasileiou",
                    CostPerHour    = 10,
                    DepartmentId   = 1,
                    ManagerId      = userManager.FindByEmailAsync("*****@*****.**").Result.Id // Id of Aris
                };

                IdentityResult result = userManager.CreateAsync(employee, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(employee, "Employee").Wait();
                }
            }

            // employee (with manager Xrysa)
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser employee = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Kostis",
                    LastName       = "Konstantinou",
                    CostPerHour    = 10,
                    DepartmentId   = 3,
                    ManagerId      = userManager.FindByEmailAsync("*****@*****.**").Result.Id // Id of Xrysa
                };

                IdentityResult result = userManager.CreateAsync(employee, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(employee, "Employee").Wait();
                }
            }

            // employee (with manager Mike)
            if (userManager.FindByEmailAsync("*****@*****.**").Result == null)
            {
                MyUser employee = new MyUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    EmailConfirmed = true,
                    FirstName      = "Ntinos",
                    LastName       = "Sadikis",
                    CostPerHour    = 10,
                    DepartmentId   = 4,
                    ManagerId      = userManager.FindByEmailAsync("*****@*****.**").Result.Id // Id of Mike
                };

                IdentityResult result = userManager.CreateAsync(employee, "111111").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(employee, "Employee").Wait();
                }
            }
        }
        public async Task <IActionResult> SeedRoles()
        {
            ApplicationUser user1 = new ApplicationUser {
                Email = "*****@*****.**", UserName = "******", FirstName = "Jack", LastName = "Ryan", BirthDate = DateTime.Now, Company = "CIA", Position = "Analyst"
            };
            ApplicationUser user2 = new ApplicationUser {
                Email = "*****@*****.**", UserName = "******", FirstName = "Manoj", LastName = "Bajpai", BirthDate = DateTime.Now, Company = "NSA", Position = "Senior Analyst"
            };

            IdentityResult result = await _userManager.CreateAsync(user1, "Password1!");

            if (!result.Succeeded)
            {
                return(View("Error", new ErrorViewModel {
                    RequestId = "Failed to add new user"
                }));
            }

            result = await _userManager.CreateAsync(user2, "Password1!");

            if (!result.Succeeded)
            {
                return(View("Error", new ErrorViewModel {
                    RequestId = "Failed to add new user"
                }));
            }

            result = await _roleManager.CreateAsync(new IdentityRole("Supervisor"));

            if (!result.Succeeded)
            {
                return(View("Error", new ErrorViewModel {
                    RequestId = "Failed to add new Roles"
                }));
            }

            result = await _roleManager.CreateAsync(new IdentityRole("Employee"));

            if (!result.Succeeded)
            {
                return(View("Error", new ErrorViewModel {
                    RequestId = "Failed to add new Roles"
                }));
            }

            result = await _userManager.AddToRoleAsync(user1, "Supervisor");

            if (!result.Succeeded)
            {
                return(View("Error", new ErrorViewModel {
                    RequestId = "Failed to add new role"
                }));
            }

            result = await _userManager.AddToRoleAsync(user2, "Employee");

            if (!result.Succeeded)
            {
                return(View("Error", new ErrorViewModel {
                    RequestId = "Failed to add new role"
                }));
            }

            return(RedirectToAction("Index", "Home"));
        }
Beispiel #23
0
 public async Task AddUserToRoleAsync(User user, string roleName)
 {
     await _userManager.AddToRoleAsync(user, roleName);
 }
Beispiel #24
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl      = returnUrl ?? Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName       = Input.Email,
                    Email          = Input.Email,
                    Nombre         = Input.Nombre,
                    Ciudad         = Input.Ciudad,
                    Pais           = Input.Pais,
                    Direccion      = Input.Direccion,
                    PhoneNumber    = Input.PhoneNumber,
                    EmailConfirmed = true
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    if (!await _roleManager.RoleExistsAsync(CNT.Admin))
                    {
                        await _roleManager.CreateAsync(new IdentityRole(CNT.Admin));

                        await _roleManager.CreateAsync(new IdentityRole(CNT.Usuario));
                    }

                    string rol = Request.Form["radUsuarioRole"].ToString();
                    if (rol == CNT.Admin)
                    {
                        await _userManager.AddToRoleAsync(user, CNT.Admin);
                    }
                    else
                    {
                        if (rol == CNT.Usuario)
                        {
                            await _userManager.AddToRoleAsync(user, CNT.Usuario);
                        }
                    }



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

                    return(LocalRedirect(returnUrl));
                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    //var callbackUrl = Url.Page(
                    //    "/Account/ConfirmEmail",
                    //    pageHandler: null,
                    //    values: new { area = "Identity", userId = user.Id, code = code },
                    //    protocol: Request.Scheme);

                    //await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                    //    $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    //if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    //{
                    //    return RedirectToPage("RegisterConfirmation", new { email = Input.Email });
                    //}
                    //else
                    //{
                    //    await _signInManager.SignInAsync(user, isPersistent: false);
                    //    return LocalRedirect(returnUrl);
                    //}
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
        public async Task Initialize(BackendContext context)
        {
            IdentityRole admin;

            // var tmp = context.Users.ToList();
            // var tmp2 = context.Roles.ToList();
            // var tmp3 = context.Roles.Any(r => r.Name == "Admin");

            if (!context.Roles.Any(r => r.Name == "Admin"))
            {
                admin = new IdentityRole
                {
                    Name           = "Admin",
                    NormalizedName = "ADMIN"
                };
                await context.Roles.AddAsync(admin);

                await context.SaveChangesAsync();
            }
            else
            {
                admin = await context.Roles.FirstOrDefaultAsync(r => r.Name == "Admin");
            }

            IdentityRole member;

            if (!context.Roles.Any(r => r.Name == "Member"))
            {
                member = new IdentityRole
                {
                    Name           = "Member",
                    NormalizedName = "MEMBER"
                };
                await context.Roles.AddAsync(member);

                await context.SaveChangesAsync();
            }
            else
            {
                member = await context.Roles.FirstOrDefaultAsync(r => r.Name == "Member");
            }

            IdentityResult result;

            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var user = new IdentityUser
                {
                    Email           = "*****@*****.**",
                    NormalizedEmail = "*****@*****.**",
                    UserName        = "******",
                    EmailConfirmed  = true,
                };
                result = await _userManager.CreateAsync(user, "herpDerp1!");

                await context.SaveChangesAsync();

                result = await _userManager.AddToRoleAsync(user, admin.Name);

                context.SaveChangesAsync().Wait();
            }

            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var memberUser = new IdentityUser
                {
                    Email              = "*****@*****.**",
                    NormalizedEmail    = "*****@*****.**",
                    UserName           = "******",
                    EmailConfirmed     = true,
                    LockoutEnabled     = false,
                    NormalizedUserName = "******",
                };
                result = await _userManager.CreateAsync(memberUser, "herpDerp1!");

                await context.SaveChangesAsync();

                result = await _userManager.AddToRoleAsync(memberUser, member.Name);

                await context.SaveChangesAsync();
            }
        }
Beispiel #26
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            var role = Request.Form["userRole"].ToString();

            returnUrl ??= Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName    = Input.Email,
                    Email       = Input.Email,
                    FirstName   = Input.FirstName,
                    LastName    = Input.LastName,
                    PhoneNumber = Input.PhoneNumber
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    if (role == Sd.KitchenRole)
                    {
                        await _userManager.AddToRoleAsync(user, Sd.KitchenRole);
                    }

                    if (role == Sd.ManagerRole)
                    {
                        await _userManager.AddToRoleAsync(user, Sd.ManagerRole);
                    }

                    if (role == Sd.FrontDeskRole)
                    {
                        await _userManager.AddToRoleAsync(user, Sd.FrontDeskRole);
                    }

                    else
                    {
                        await _userManager.AddToRoleAsync(user, Sd.CusomerRole);
                    }


                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
                        protocol: Request.Scheme);

                    await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                                                      $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl }));
                    }
                    else
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
Beispiel #27
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                int roleId = Convert.ToInt32(model.RoleId);
                //int roleId = 22;
                //Entities db = new Entities();
                if (roleId == 0)
                {
                    //var doctor = new Doctor();
                    var user = new ApplicationUser()
                    {
                        UserName = model.UserName
                    };
                    var result = await UserManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        await UserManager.AddToRoleAsync(user.Id, "Doctor");

                        //doctor.LoginId = user.Id;
                        //doctor.HospitalId = 1;
                        //db.Doctors.Add(doctor);
                        //db.SaveChanges();
                        //Session["DoctorId"] = doctor.DoctorId;
                        await SignInAsync(user, isPersistent : false);

                        //return RedirectToAction("Edit", "Doctor", new { id = doctor.DoctorId });
                    }
                    else
                    {
                        AddErrors(result);
                    }
                }
                else if (roleId == 1)
                {
                    //var collegian = new Collegian();
                    var user = new ApplicationUser()
                    {
                        UserName = model.UserName
                    };
                    var result = await UserManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        await UserManager.AddToRoleAsync(user.Id, "Collegian");

                        //collegian = new Collegian();
                        //collegian.LoginId = user.Id;
                        //collegian.UniversityId = 1;
                        //db.Collegians.Add(collegian);
                        //db.SaveChanges();
                        //Session["CollegianId"] = collegian.CollegianId;
                        //await SignInAsync(user, isPersistent: false);
                        //return RedirectToAction("Edit", "Collegian", new { id = collegian.CollegianId });
                    }
                    else
                    {
                        AddErrors(result);
                    }
                }
                else if (roleId == 22)//set user as admin role
                {
                    var user = new ApplicationUser()
                    {
                        UserName = model.UserName
                    };
                    var result = await UserManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        await UserManager.AddToRoleAsync(user.Id, "Admin");
                        await SignInAsync(user, isPersistent : false);

                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        AddErrors(result);
                    }
                }
            }
            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        private async Task BuildForInternalAsync(Tenant tenant)
        {
            //Create Organization Units

            var organizationUnits = new List <OrganizationUnit>();

            var producing = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Producing");

            var researchAndDevelopment = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Research & Development", producing);

            var ivrProducts = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "IVR Related Products", researchAndDevelopment);

            var voiceTech = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Voice Technologies", researchAndDevelopment);

            var inhouseProjects = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Inhouse Projects", researchAndDevelopment);

            var qualityManagement = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Quality Management", producing);

            var testing = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Testing", producing);

            var selling = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Selling");

            var marketing = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Marketing", selling);

            var sales = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Sales", selling);

            var custRelations = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Customer Relations", selling);

            var supporting = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Supporting");

            var buying = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Buying", supporting);

            var humanResources = await CreateAndSaveOrganizationUnit(organizationUnits, tenant, "Human Resources", supporting);

            //Create users

            var users = _randomUserGenerator.GetRandomUsers(RandomHelper.GetRandom(12, 26), tenant.Id);

            foreach (var user in users)
            {
                //Create the user
                await _userManager.CreateAsync(user);

                await CurrentUnitOfWork.SaveChangesAsync();

                //Add to roles
                await _userManager.AddToRoleAsync(user, StaticRoleNames.Tenants.User);

                //Add to OUs
                var randomOus = RandomHelper.GenerateRandomizedList(organizationUnits).Take(RandomHelper.GetRandom(0, 3));
                foreach (var ou in randomOus)
                {
                    await _userManager.AddToOrganizationUnitAsync(user, ou);
                }

                //Set profile picture
                if (RandomHelper.GetRandom(100) < 70) //A user will have a profile picture in 70% probability.
                {
                    await SetRandomProfilePictureAsync(user);
                }
            }

            //Set a picture to admin!
            var admin = await _userManager.FindByNameAsync(AbpUserBase.AdminUserName);

            await SetRandomProfilePictureAsync(admin);

            //Create Friendships
            var friends = RandomHelper.GenerateRandomizedList(users).Take(3).ToList();

            foreach (var friend in friends)
            {
                await _friendshipManager.CreateFriendshipAsync(
                    new Friendship(
                        admin.ToUserIdentifier(),
                        friend.ToUserIdentifier(),
                        tenant.TenancyName,
                        friend.UserName,
                        friend.ProfilePictureId,
                        FriendshipState.Accepted)
                    );

                await _friendshipManager.CreateFriendshipAsync(
                    new Friendship(
                        friend.ToUserIdentifier(),
                        admin.ToUserIdentifier(),
                        tenant.TenancyName,
                        admin.UserName,
                        admin.ProfilePictureId,
                        FriendshipState.Accepted)
                    );
            }

            //Create chat message
            var friendWithMessage = RandomHelper.GenerateRandomizedList(friends).First();
            var sharedMessageId   = Guid.NewGuid();

            _chatMessageRepository.InsertAndGetId(
                new ChatMessage(
                    friendWithMessage.ToUserIdentifier(),
                    admin.ToUserIdentifier(),
                    ChatSide.Sender,
                    L("Demo_SampleChatMessage"),
                    ChatMessageReadState.Read,
                    sharedMessageId,
                    ChatMessageReadState.Unread
                    )
                );

            _chatMessageRepository.InsertAndGetId(
                new ChatMessage(
                    admin.ToUserIdentifier(),
                    friendWithMessage.ToUserIdentifier(),
                    ChatSide.Receiver,
                    L("Demo_SampleChatMessage"),
                    ChatMessageReadState.Unread,
                    sharedMessageId,
                    ChatMessageReadState.Read
                    )
                );
        }
Beispiel #29
0
        //.net core 2.1

        /* private readonly DataContext _context;
         * public Seed(DataContext context)
         * {
         *  _context = context;
         * } */

        public static async Task SeedUsers(UserManager <AppUser> userManager, RoleManager <AppRole> roleManager)
        {
            if (!await userManager.Users.AnyAsync())
            {
                var userData = System.IO.File.ReadAllText("Data/UserSeedData.json");
                var users    = JsonConvert.DeserializeObject <List <AppUser> >(userData);

                var roles = new List <AppRole>
                {
                    new AppRole {
                        Name = "Member"
                    },
                    new AppRole {
                        Name = "Admin"
                    },
                    new AppRole {
                        Name = "Moderator"
                    },
                };

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

                foreach (var user in users)
                {
                    /*byte[] passwordHash, passwordSalt;*/

                    /*CreatePasswordHash("password", out passwordHash, out passwordSalt);
                     *
                     * user.PasswordHash = passwordHash;
                     * user.PasswordSalt = passwordSalt;*/
                    user.UserName = user.UserName.ToLower();

                    foreach (var ca in user.ClassifiedAds)
                    {
                        ca.DateAdded = DateTime.Now;
                        ca.Status    = "Approved";
                        foreach (var photo in ca.Photos)
                        {
                            photo.Status = "Approved";
                        }
                    }

                    await userManager.CreateAsync(user, "Password123");

                    await userManager.AddToRoleAsync(user, "Member");
                }

                var admin = new AppUser
                {
                    UserName = "******",
                    City     = "Veles"
                };

                await userManager.CreateAsync(admin, "P@ssw0rd");

                await userManager.AddToRolesAsync(admin, new[] { "Admin", "Moderator" });
            }
        }
Beispiel #30
0
        public async Task <ActionResult> Register(RegisterViewModel rvm)
        {
            if (rvm.Birthday.AddYears(13) >= DateTime.Now && rvm.EmployeeAccountType != true)
            {
                ModelState.AddModelError("", "You are too young to have an account. You must be at least 13 to register for this site.");
            }
            else if (rvm.Birthday.AddYears(18) >= DateTime.Now && rvm.EmployeeAccountType == true)
            {
                ModelState.AddModelError("", "The user is too young to be an employee. They must be at least 18 or older.");
            }

            var emailPassword = rvm.Password;

            //if registration data is valid, create a new user on the database
            if (ModelState.IsValid)
            {
                //this code maps the RegisterViewModel to the AppUser domain model
                AppUser newUser = new AppUser
                {
                    UserName    = rvm.Email,
                    Email       = rvm.Email,
                    PhoneNumber = rvm.PhoneNumber,

                    //TODO: Add the rest of the custom user fields here
                    //FirstName is included as an example
                    FirstName     = rvm.FirstName,
                    MiddleInitial = rvm.MiddleInitial,
                    LastName      = rvm.LastName,
                    Address       = rvm.FirstName,
                    City          = rvm.City,
                    State         = rvm.State,
                    Zip           = rvm.Zip,
                    Birthday      = rvm.Birthday,
                    PCPBalance    = rvm.PCPBalance,
                    AccountStatus = true,
                };

                //This code uses the UserManager object to create a new user with the specified password
                IdentityResult result = await _userManager.CreateAsync(newUser, rvm.Password);

                //If the add user operation was successful, we need to do a few more things
                if (result.Succeeded && User.IsInRole("Manager"))
                {
                    if (rvm.CustomerAccountType == false && rvm.EmployeeAccountType == true)
                    {
                        //adds to employee role
                        await _userManager.AddToRoleAsync(newUser, "Employee");
                    }
                    else
                    {
                        //adds to customer role
                        await _userManager.AddToRoleAsync(newUser, "Customer");
                    }


                    //NOTE: This code logs the user into the account that they just created
                    //You may or may not want to log a user in directly after they register - check
                    //the business rules!
                    //Microsoft.AspNetCore.Identity.SignInResult result2 = await _signInManager.PasswordSignInAsync(rvm.Email, rvm.Password, false, lockoutOnFailure: false);

                    //Send the user to the home page
                    return(RedirectToAction("AccountCreation", "Email", new { newUser.Id, emailPassword }));
                }

                if (result.Succeeded != User.IsInRole("Manager"))
                {
                    //TODO: Add user to desired role. This example adds the user to the customer role
                    await _userManager.AddToRoleAsync(newUser, "Customer");

                    //NOTE: This code logs the user into the account that they just created
                    //You may or may not want to log a user in directly after they register - check
                    //the business rules!
                    Microsoft.AspNetCore.Identity.SignInResult result2 = await _signInManager.PasswordSignInAsync(rvm.Email, rvm.Password, false, lockoutOnFailure : false);

                    //Send the user to the home page
                    return(RedirectToAction("AccountCreation", "Email", new { newUser.Id, emailPassword }));
                }

                else  //the add user operation didn't work, and we need to show an error message
                {
                    foreach (IdentityError error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }
            //this is the sad path - something went wrong,
            //return the user to the register page to try again
            return(View(rvm));
        }
        /// <summary>
        /// Generate default admin user / role
        /// </summary>
        private static async Task EnsureSeedIdentityData <TUser, TRole>(UserManager <TUser> userManager,
                                                                        RoleManager <TRole> roleManager, IdentityData identityDataConfiguration)
            where TUser : IdentityUser, new()
            where TRole : IdentityRole, new()
        {
            // adding roles from seed
            foreach (var r in identityDataConfiguration.Roles)
            {
                if (!await roleManager.RoleExistsAsync(r.Name))
                {
                    var role = new TRole
                    {
                        Name = r.Name
                    };

                    var result = await roleManager.CreateAsync(role);

                    if (result.Succeeded)
                    {
                        foreach (var claim in r.Claims)
                        {
                            await roleManager.AddClaimAsync(role, new System.Security.Claims.Claim(claim.Type, claim.Value));
                        }
                    }
                }
            }

            // adding users from seed
            foreach (var user in identityDataConfiguration.Users)
            {
                var identityUser = new TUser
                {
                    UserName       = user.Username,
                    Email          = user.Email,
                    EmailConfirmed = true
                };

                var userByUserName = await userManager.FindByNameAsync(user.Username);

                var userByEmail = await userManager.FindByEmailAsync(user.Email);

                // User is already exists in database
                if (userByUserName != default || userByEmail != default)
                {
                    continue;
                }

                // if there is no password we create user without password
                // user can reset password later, because accounts have EmailConfirmed set to true
                var result = !string.IsNullOrEmpty(user.Password)
                ? await userManager.CreateAsync(identityUser, user.Password)
                : await userManager.CreateAsync(identityUser);

                if (result.Succeeded)
                {
                    foreach (var claim in user.Claims)
                    {
                        await userManager.AddClaimAsync(identityUser, new System.Security.Claims.Claim(claim.Type, claim.Value));
                    }

                    foreach (var role in user.Roles)
                    {
                        await userManager.AddToRoleAsync(identityUser, role);
                    }
                }
            }
        }
Beispiel #32
0
        private async Task Seed(IUnitOfWork uow  , UserManager<ApplicationUser> usrMan, RoleManager<IdentityRole> _RoleManager)
        {

            var email = "*****@*****.**";
            var RoleName = "CustomerAdmin";
            var role = await _RoleManager.FindByNameAsync(RoleName);
            if (role == null)
            {
                role = new IdentityRole { Name = RoleName };
                await _RoleManager.CreateAsync(role);
            }

        RoleName = "superadmin";
            role = await _RoleManager.FindByNameAsync( RoleName );
            if ( role == null)
            {
                role = new IdentityRole { Name = "SuperAdmin" };
                await _RoleManager.CreateAsync(role);
            }
            
            var appUser = await usrMan.FindByEmailAsync(email);
            if (appUser != null)
            {
                var result = await usrMan.DeleteAsync(appUser);
            }
            else 
            {
                appUser = new ApplicationUser() { UserName = email, Email = email };
                var result2 = await usrMan.CreateAsync(appUser, "Shafiro2,");
                if (result2.Succeeded)
                {
                    await usrMan.AddToRoleAsync(appUser,  RoleName ); 
                    var hrmUser = new User()
                    {
                        UserID = "7310209296",
                        FirstName = "Gabriel",
                        LastName = "Tekin",
                        UserName = "******",
                        UserCode = "tekgab",
                        PhoneNumber = "0702385537"
                    };
                    if (uow.UserRepository.GetEagerLoad( w => w.UserID.Equals( hrmUser.UserID, StringComparison.OrdinalIgnoreCase )).FirstOrDefault()   == null )
                    {
                        uow.UserRepository.Insert(hrmUser);
                        uow.Save();
                    }
                    
                }
                else
                {
                    var code = result2.Errors.FirstOrDefault().Code;
                }
            }

            } // method seed 
        private static void AddUsersToRoles(UserManager<ApplicationUser> users, RoleManager<ApplicationRole> roleManager)
        {
            var admin = users.FindByEmailAsync("*****@*****.**").Result;
            var esthetician = users.FindByEmailAsync("*****@*****.**").Result;

            Task.FromResult(users.AddToRolesAsync(admin, new[] { "Admin", "Esthetician" }).Result);
            Task.FromResult(users.AddToRoleAsync(esthetician, "Esthetician").Result);
        }
Beispiel #34
0
        public async Task <ApiResponse> Create(RegisterDto parameters)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new ApiResponse(400, "User Model is Invalid"));
                }

                var user = new ApplicationUser
                {
                    UserName = parameters.UserName,
                    Email    = parameters.Email
                };

                user.UserName = parameters.UserName;
                var result = await _userManager.CreateAsync(user, parameters.Password);

                if (!result.Succeeded)
                {
                    return(new ApiResponse(400, "Register User Failed: " + result.Errors.FirstOrDefault()?.Description));
                }
                else
                {
                    var claimsResult = _userManager.AddClaimsAsync(user, new Claim[] {
                        new Claim(Policies.IsUser, ""),
                        new Claim(JwtClaimTypes.Name, parameters.UserName),
                        new Claim(JwtClaimTypes.Email, parameters.Email),
                        new Claim(JwtClaimTypes.EmailVerified, "false", ClaimValueTypes.Boolean)
                    }).Result;
                }

                //Role - Here we tie the new user to the "User" role
                await _userManager.AddToRoleAsync(user, "User");

                if (Convert.ToBoolean(_configuration["BlazorBoilerplate:RequireConfirmedEmail"] ?? "false"))
                {
                    #region New  User Confirmation Email
                    try
                    {
                        // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713
                        var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                        string callbackUrl = string.Format("{0}/Account/ConfirmEmail/{1}?token={2}", _configuration["BlazorBoilerplate:ApplicationUrl"], user.Id, token);

                        var email = new EmailMessageDto();
                        email.ToAddresses.Add(new EmailAddressDto(user.Email, user.Email));
                        email = EmailTemplates.BuildNewUserConfirmationEmail(email, user.UserName, user.Email, callbackUrl, user.Id.ToString(), token); //Replace First UserName with Name if you want to add name to Registration Form

                        _logger.LogInformation("New user created: {0}", user);
                        await _emailService.SendEmailAsync(email);
                    }
                    catch (Exception ex)
                    {
                        _logger.LogInformation("New user email failed: {0}", ex.Message);
                    }
                    #endregion
                    return(new ApiResponse(200, "Create User Success"));
                }

                #region New  User Email
                try
                {
                    var email = new EmailMessageDto();
                    email.ToAddresses.Add(new EmailAddressDto(user.Email, user.Email));
                    email.BuildNewUserEmail(user.FullName, user.UserName, user.Email, parameters.Password);

                    _logger.LogInformation("New user created: {0}", user);
                    await _emailService.SendEmailAsync(email);
                }
                catch (Exception ex)
                {
                    _logger.LogInformation("New user email failed: {0}", ex.Message);
                }
                #endregion

                UserInfoDto userInfo = new UserInfoDto
                {
                    IsAuthenticated = false,
                    UserName        = user.UserName,
                    Email           = user.Email,
                    FirstName       = user.FirstName,
                    LastName        = user.LastName,
                    //ExposedClaims = user.Claims.ToDictionary(c => c.Type, c => c.Value),
                    Roles = new List <string> {
                        "User"
                    }
                };

                return(new ApiResponse(200, "Created New User", userInfo));
            }
            catch (Exception ex)
            {
                _logger.LogError("Create User Failed: {0}", ex.Message);
                return(new ApiResponse(400, "Create User Failed"));
            }
        }
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl      = returnUrl ?? Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new SammysAutoApplicationUser
                {
                    UserName    = Input.Email,
                    Email       = Input.Email,
                    FirstName   = Input.FirstName,
                    LastName    = Input.LastName,
                    Address     = Input.Address,
                    City        = Input.City,
                    PostalCode  = Input.PostalCode,
                    PhoneNumber = Input.PhoneNumber
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    if (!await _roleManager.RoleExistsAsync(SD.CustomerEndUser))
                    {
                        await _roleManager.CreateAsync(new SammysAutoApplicationRole(SD.CustomerEndUser));
                    }
                    if (!await _roleManager.RoleExistsAsync(SD.AdminEndUser))
                    {
                        await _roleManager.CreateAsync(new SammysAutoApplicationRole(SD.AdminEndUser));
                    }
                    await _userManager.AddToRoleAsync(user, SD.AdminEndUser);

                    //if (Input.IsAdmin)
                    //{

                    //}
                    //else
                    //{
                    //    await _userManager.AddToRoleAsync(user, SD.CustomerEndUser);
                    //}

                    _logger.LogInformation("User created a new account with password.");

                    if (User.IsInRole(SD.AdminEndUser))
                    {
                        return(RedirectToAction("Index", "Users"));
                    }
                    else
                    {
                        var userDetails = await _userManager.FindByEmailAsync(Input.Email);

                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(RedirectToAction("Index", "Cars", new { userId = userDetails.Id }));
                    }

                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    //var callbackUrl = Url.Page(
                    //    "/Account/ConfirmEmail",
                    //    pageHandler: null,
                    //    values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
                    //    protocol: Request.Scheme);

                    //await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                    //    $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    //if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    //{
                    //    return RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl });
                    //}
                    //else
                    //{
                    //    await _signInManager.SignInAsync(user, isPersistent: false);
                    //    return LocalRedirect(returnUrl);
                    //}
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
        public async Task<ActionResult> AddUserToRole(string roleName)
        {
            var userStore = new UserStore<IdentityUser>();
            var userManager = new UserManager<IdentityUser>(userStore);
            var roleStore = new RoleStore<IdentityRole>();
            var roleManager = new RoleManager<IdentityRole>(roleStore);

            var role = await roleManager.FindByNameAsync(roleName);

            if (role == null)
            {
                return View();
            }


            await userManager.AddToRoleAsync(User.Identity.GetUserId(), roleName);
   
            return RedirectToAction("index", "home");
        }
        public async Task <IActionResult> Put([FromBody] UserViewModel model)
        {
            // return a generic HTTP Status 500 (Server Error)
            // if the client payload is invalid.
            if (model == null)
            {
                return(new StatusCodeResult(500));
            }

            // check if the Username/Email already exists
            ApplicationUser user = await UserManager.FindByNameAsync(model.UserName);

            if (user != null)
            {
                return(BadRequest("Username already exists"));
            }

            user = await UserManager.FindByEmailAsync(model.Email);

            if (user != null)
            {
                return(BadRequest("Email already exists."));
            }

            // added in 2018.01.06 to fix GitHub issue #11
            // ref.: https://github.com/PacktPublishing/ASP.NET-Core-2-and-Angular-5/issues/11
            if (!PasswordCheck.IsValidPassword(model.Password, UserManager.Options.Password))
            {
                return(BadRequest("Password is too weak."));
            }

            var now = DateTime.Now;

            // create a new Item with the client-sent json data
            user = new ApplicationUser()
            {
                SecurityStamp    = Guid.NewGuid().ToString(),
                UserName         = model.UserName,
                Email            = model.Email,
                DisplayName      = model.DisplayName,
                CreatedDate      = now,
                LastModifiedDate = now
            };

            // Add the user to the Db with the choosen password
            await UserManager.CreateAsync(user, model.Password);

            // Assign the user to the 'RegisteredUser' role.
            await UserManager.AddToRoleAsync(user, "RegisteredUser");

            // Remove Lockout and E-Mail confirmation
            user.EmailConfirmed = true;
            user.LockoutEnabled = false;

            // persist the changes into the Database.
            DbContext.SaveChanges();

            // return the newly-created User to the client.
            return(Json(user.Adapt <UserViewModel>(),
                        JsonSettings));
        }
        /// <summary>
        /// remove all current permission for the given user and insert new given permissions. 
        /// </summary>
        /// <param name="newRoles">Accepts a list of RolesName type string</param>
        /// <param name="UserID">Accepts a 128 chr userID type string</param>
        /// <returns></returns>
        public async Task<string> EditbuildingUserPermission(List<string> newRoles, string UserID)
        {
            var result = "";
            var RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
            var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
            //get all roles for the current user
            List<string> AllRoles = UserManager.GetRoles(UserID).ToList();
            //delete all the roles
            foreach (var item in AllRoles)
            {
                await UserManager.RemoveFromRoleAsync(UserID, item);
            }
            //add new roles 
            foreach (var item in newRoles)
            {
                if (RoleManager.RoleExists(item))
                {
                    await UserManager.AddToRoleAsync(UserID, item);
                }
            }

            return result;

        }
Beispiel #39
0
        public async Task <IActionResult> CreateAdminIfDoesntExist(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            if (ModelState.IsValid)
            {
                var user = new Korisnik
                {
                    UserName = "******",
                    Email    = "*****@*****.**",
                    Name     = "Admin",
                    Surname  = "Admin",
                    JMBAG    = "111111111",
                };
                //var result = await _userManager.CreateAsync(user, "Admin1234");

                var result = await _signInManager.PasswordSignInAsync(user.Email, "Admin1234", false, false);

                if (!result.Succeeded)
                {
                    var creationResult = await _userManager.CreateAsync(user, "Admin1234");

                    if (creationResult.Succeeded)
                    {
                        if (!await _roleManager.RoleExistsAsync(StaticDetails.AdminRole))
                        {
                            await _roleManager.CreateAsync(new IdentityRole(StaticDetails.AdminRole));
                        }

                        if (!await _roleManager.RoleExistsAsync(StaticDetails.ProfessorRole))
                        {
                            await _roleManager.CreateAsync(new IdentityRole(StaticDetails.ProfessorRole));
                        }

                        if (!await _roleManager.RoleExistsAsync(StaticDetails.StudentRole))
                        {
                            await _roleManager.CreateAsync(new IdentityRole(StaticDetails.StudentRole));
                        }

                        await _userManager.AddToRoleAsync(user, StaticDetails.AdminRole);

                        _logger.LogInformation("User created a new account with password.");

                        var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                        var callbackUrl = Url.Page(
                            "/Account/ConfirmEmail",
                            pageHandler: null,
                            values: new { userId = user.Id, code = code },
                            protocol: Request.Scheme);

                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
            }

            // If we got this far, something failed, redisplay form
            //return null;
            return(new OkResult());
        }
        public async Task ValidateAsync(ExtensionGrantValidationContext context)
        {
            var createUser = false;
            var raw        = context.Request.Raw;
            var credential = raw.Get(OidcConstants.TokenRequest.GrantType);

            if (credential != null && credential == AuthConstants.GrantType.PhoneNumberToken)
            {
                var phoneNumber       = raw.Get(AuthConstants.TokenRequest.PhoneNumber);
                var verificationToken = raw.Get(AuthConstants.TokenRequest.Token);

                var user = await _userManager.Users.SingleOrDefaultAsync(x => x.PhoneNumber == _userManager.NormalizeKey(phoneNumber));

                if (user == null)
                {
                    user = new User
                    {
                        UserName      = phoneNumber,
                        PhoneNumber   = phoneNumber,
                        SecurityStamp = phoneNumber.Sha256()
                    };

                    createUser = true;
                }

                var result = await _phoneNumberTokenProvider.ValidateAsync("verify_number", verificationToken, _userManager, user);

                if (result)
                {
                    if (createUser)
                    {
                        user.PhoneNumberConfirmed = true;
                        var resultCreation = await _userManager.CreateAsync(user);

                        if (resultCreation != IdentityResult.Success)
                        {
                            _logger.LogInformation("User creation failed: {username}, reason: invalid user", phoneNumber);
                            await _events.RaiseAsync(new UserLoginFailureEvent(phoneNumber, resultCreation.Errors.Select(x => x.Description).Aggregate((a, b) => a + ", " + b), false));

                            return;
                        }

                        var resultAssignedRole = await _userManager.AddToRoleAsync(user, UserRole.UserRoleName);

                        if (resultAssignedRole != IdentityResult.Success)
                        {
                            _logger.LogInformation(" Assign User to role failed: {username}, reason: invalid user", phoneNumber);
                            await _events.RaiseAsync(new UserLoginFailureEvent(phoneNumber, resultCreation.Errors.Select(x => x.Description).Aggregate((a, b) => a + ", " + b), false));

                            return;
                        }
                    }

                    _logger.LogInformation("Credentials validated for username: {phoneNumber}", phoneNumber);
                    await _events.RaiseAsync(new UserLoginSuccessEvent(phoneNumber, user.Id.ToString(), phoneNumber, false));

                    await _signInManager.SignInAsync(user, true);

                    context.Result = new GrantValidationResult(user.Id.ToString(), OidcConstants.AuthenticationMethods.ConfirmationBySms);
                }
                else
                {
                    _logger.LogInformation("Authentication failed for token: {token}, reason: invalid token", verificationToken);
                    await _events.RaiseAsync(new UserLoginFailureEvent(verificationToken, "invalid token or verification id", false));
                }
            }
            else
            {
                context.Result = new GrantValidationResult(TokenRequestErrors.InvalidGrant, "invalid verify_phone_number_token credential");
            }
        }
Beispiel #41
0
        public async Task <int> CreateWithAdminUserAsync(
            string tenancyName,
            string name,
            string adminPassword,
            string adminEmailAddress,
            string connectionString,
            bool isActive,
            int?editionId,
            bool shouldChangePasswordOnNextLogin,
            bool sendActivationEmail,
            DateTime?subscriptionEndDate,
            bool isInTrialPeriod,
            string emailActivationLink)
        {
            int  newTenantId;
            long newAdminId;

            await CheckEditionAsync(editionId, isInTrialPeriod);

            using (var uow = _unitOfWorkManager.Begin(TransactionScopeOption.RequiresNew))
            {
                //Create tenant
                var tenant = new Tenant(tenancyName, name)
                {
                    IsActive  = isActive,
                    EditionId = editionId,
                    SubscriptionEndDateUtc = subscriptionEndDate?.ToUniversalTime(),
                    IsInTrialPeriod        = isInTrialPeriod,
                    ConnectionString       = connectionString.IsNullOrWhiteSpace() ? null : SimpleStringCipher.Instance.Encrypt(connectionString)
                };

                await CreateAsync(tenant);

                await _unitOfWorkManager.Current.SaveChangesAsync(); //To get new tenant's id.

                //Create tenant database
                _abpZeroDbMigrator.CreateOrMigrateForTenant(tenant);

                //We are working entities of new tenant, so changing tenant filter
                using (_unitOfWorkManager.Current.SetTenantId(tenant.Id))
                {
                    //Create static roles for new tenant
                    CheckErrors(await _roleManager.CreateStaticRoles(tenant.Id));
                    await _unitOfWorkManager.Current.SaveChangesAsync(); //To get static role ids

                    //grant all permissions to admin role
                    var adminRole = _roleManager.Roles.Single(r => r.Name == StaticRoleNames.Tenants.Admin);
                    await _roleManager.GrantAllPermissionsAsync(adminRole);

                    //User role should be default
                    var userRole = _roleManager.Roles.Single(r => r.Name == StaticRoleNames.Tenants.User);
                    userRole.IsDefault = true;
                    CheckErrors(await _roleManager.UpdateAsync(userRole));

                    //Create admin user for the tenant
                    if (adminPassword.IsNullOrEmpty())
                    {
                        adminPassword = User.CreateRandomPassword();
                    }

                    var adminUser = User.CreateTenantAdminUser(tenant.Id, adminEmailAddress);
                    adminUser.Password = _passwordHasher.HashPassword(adminUser, adminPassword);
                    adminUser.ShouldChangePasswordOnNextLogin = shouldChangePasswordOnNextLogin;
                    adminUser.IsActive = true;

                    CheckErrors(await _userManager.CreateAsync(adminUser));
                    await _unitOfWorkManager.Current.SaveChangesAsync(); //To get admin user's id

                    //Assign admin user to admin role!
                    CheckErrors(await _userManager.AddToRoleAsync(adminUser, adminRole.Name));

                    //Notifications
                    await _appNotifier.WelcomeToTheApplicationAsync(adminUser);

                    //Send activation email
                    if (sendActivationEmail)
                    {
                        adminUser.SetNewEmailConfirmationCode();
                        await _userEmailer.SendEmailActivationLinkAsync(adminUser, emailActivationLink, adminPassword);
                    }

                    await _unitOfWorkManager.Current.SaveChangesAsync();

                    await _demoDataBuilder.BuildForAsync(tenant);

                    newTenantId = tenant.Id;
                    newAdminId  = adminUser.Id;
                }

                await uow.CompleteAsync();
            }

            //Used a second UOW since UOW above sets some permissions and _notificationSubscriptionManager.SubscribeToAllAvailableNotificationsAsync needs these permissions to be saved.
            using (var uow = _unitOfWorkManager.Begin(TransactionScopeOption.RequiresNew))
            {
                using (_unitOfWorkManager.Current.SetTenantId(newTenantId))
                {
                    await _notificationSubscriptionManager.SubscribeToAllAvailableNotificationsAsync(new UserIdentifier(newTenantId, newAdminId));

                    await _unitOfWorkManager.Current.SaveChangesAsync();

                    await uow.CompleteAsync();
                }
            }

            return(newTenantId);
        }
Beispiel #42
0
 public async Task <IdentityResult> AddToRoleAsync(ApplicationUser user, string role)
 {
     return(await _userManager.AddToRoleAsync(user, role));
 }
        public static async Task SeedUsers(UserManager <AppUser> userMgr)
        {
            // add Admin
            if (await userMgr.FindByEmailAsync("*****@*****.**") == null)
            {
                var user = new AppUser()
                {
                    Id        = Guid.NewGuid().ToString(),
                    UserName  = "******",
                    Firstname = "admin",
                    Email     = "*****@*****.**"
                };

                var userResult = await userMgr.CreateAsync(user, "Docent@1");

                var roleResult = await userMgr.AddToRoleAsync(user, "Admin");

                if (!userResult.Succeeded || !roleResult.Succeeded)
                {
                    throw new InvalidOperationException("Failed to build admin and add roles");
                }
            }

            // add User
            if (await userMgr.FindByEmailAsync("*****@*****.**") == null)
            {
                var user = new AppUser()
                {
                    Id        = Guid.NewGuid().ToString(),
                    UserName  = "******",
                    Firstname = "Victor",
                    Email     = "*****@*****.**"
                };

                var userResult = await userMgr.CreateAsync(user, "Victor@1");

                var roleResult = await userMgr.AddToRoleAsync(user, "User");

                if (!userResult.Succeeded || !roleResult.Succeeded)
                {
                    throw new InvalidOperationException("Failed to build admin and add roles");
                }
            }
            if (await userMgr.FindByEmailAsync("*****@*****.**") == null)
            {
                var user = new AppUser()
                {
                    Id        = Guid.NewGuid().ToString(),
                    UserName  = "******",
                    Firstname = "Victor",
                    Email     = "*****@*****.**"
                };

                var userResult = await userMgr.CreateAsync(user, "Victor@1");

                var roleResult = await userMgr.AddToRoleAsync(user, "Creator");

                if (!userResult.Succeeded || !roleResult.Succeeded)
                {
                    throw new InvalidOperationException("Failed to build admin and add roles");
                }
            }
        }
Beispiel #44
0
		public async Task EnsureDatabaseAsync()
		{
			await MigrateDatabaseAsync(ServiceProvider);
			_userManager = ServiceProvider.GetService<UserManager<ApplicationUser>>();
			var roleManager = ServiceProvider.GetService<RoleManager<IdentityRole>>();
			await EnsureUsersAsync(false);
			Context = ServiceProvider.GetRequiredService<ApplicationDbContext>();
			//var userStore = new UserStore<ApplicationUser>(context);
			////var roleManager = new RoleManager<IdentityRole>();
			//var userManager = new UserManager<ApplicationUser>(
			//	, );
			EnsureDatabaseExists();
			Context.Database.EnsureCreated();
			// Add Mvc.Client to the known applications.
			_productsCrud = new CrudBase<Product, int>(
				Context, Context.Products, p => p.ProductId);
			_ordersCrud = new CrudBase<Order, int>(
				Context, Context.Orders, p => p.Id);
			var customersCrud = new CrudBase<Customer, int>(
				Context, Context.Customers, p => p.CustomerId);

			//Action<string, double, int?, DateTime?, string> prod = (name, price, customerId, dateCreated, cratedByUserId) =>
			//{
			//	productId = Prod(productsCrud, productId, name, price, customerId, dateCreated, cratedByUserId);
			//};
			Action<string, string, string> cust = (guid, firstName, lastName) =>
			{
				customersCrud.EnsureEntity(
					guid, customer =>
					{
						customer.FirstName = firstName;
						customer.LastName = lastName;
					});
			};

			cust("6c13ec25-b9cf-4c99-87e7-13a45a034342", "Harry", "Whitburn");
			cust("0e941f32-8ae1-4eae-875a-f748bae3ce2a", "Nick", "Lawden");
			cust("134bd420-f64a-40db-bbe4-0b9a9ff3eb01", "Emil", "Roijer");
			Context.SaveChanges();
			Prod("00d5c0b0-738d-41ff-86d4-dca84da1d4d5", "Apple number1", 10, null, null);
			Prod("cd4c554d-3ca2-49aa-9286-08abacba3fa0", "Apple number1", 10, 1, null, "1");
			Prod("d100c753-3335-439c-88db-b8d9b6c09cc8", "Orange number1", 20, null, null);
			Prod("da93b8a4-4378-4ce0-918e-653f1bd4acaf", "Peanut butter number1", 25, 2, null);
			Prod("fe208521-4a77-4b09-94c2-2f08a4dd8872", "xApple number2", 10, 1, null);
			Prod("844fbc16-3d77-4421-9498-aa65300bc789", "xOrange number2", 20, 2, null);
			Prod("78509968-0073-4c57-8774-ec0d58ea7ff3", "xPeanut butter number2", 25, 2, null);
			Prod("18b8c4e7-48a2-40c7-bea8-1d1879bf852e", "xApple number2", 10, 1, null);
			Prod("e5ab744c-441c-447b-ae92-055b1bce5541", "xOrange number2", 20, 2, null);
			Prod("3a5476b1-7dd8-40b0-a6ce-b6bd3127da6f", "xPeanut butter number2", 25, 2, null);
			Prod("633a125c-1fe2-4f06-859d-a8d8fd52eb11", "xApple number2", 10, 1, null);
			Prod("27eea6ff-c4aa-44a0-84fe-32b0e13beec4", "xOrange number2", 20, 2, null);
			Prod("dcdc6836-3b44-41c5-8ade-792e39ce2112", "xPeanut butter number2", 25, 2, null);
			Prod("fdc3139d-8585-4b34-b815-13598bf55791", "xApple number2", 10, 1, null);
			Prod("46b058b2-dd55-4741-9ee0-99c63c4bd94a", "xOrange number2", 20, 2, null);
			Prod("11c0e3e5-c5d7-4ff5-ba6c-a54b77f91d1b", "xPeanut butter number2", 25, 2, null);
			Prod("796b6b1d-2d6d-413c-bcab-2659c0fdf02f", "Apple number3", 10, 1, null);
			Prod("5f928f2f-bc1b-4e73-a0d8-20c36f817342", "Orange number3", 20, 2, null);
			Prod("f4fa623d-f412-4b68-8a26-17cfa16cb0a0", "Peanut butter number3", 25, 2, null);
			Prod("8f81d6ab-4c8f-4800-aea0-3cb1ca116fc6", "Apple number4", 10, 1, null);
			Prod("f2b8032f-c8ac-406f-8038-939201771901", "Orange number4", 20, 2, null);
			Prod("dc872dbf-956c-43aa-aba4-e75395af7d83", "Peanut butter number4", 25, 2, null);
			Prod("4ca16ce0-1466-4ba6-a69b-5465ed0a4b1d", "Apple number5", 10, 1, null);
			Prod("66cc487b-2eb1-470b-98c8-03ee913d860e", "Orange number5", 20, 2, null);
			Prod("e77e6589-1dba-4c8b-97b1-1564056ddf10", "Peanut butter number5", 25, 2, null);
			Prod("183946f3-41a9-4140-a1cb-b328e3a778d1", "Apple number6", 10, 1, null);
			Prod("2995edec-ec1b-42ed-aa97-1e68a9ef765c", "Orange number6", 20, 2, null);
			Prod("a78204ae-169a-4d30-936b-034cda5abd0f", "Peanut butter number6", 25, 2, null);
			Context.SaveChanges();
			Order("31d57282-4824-4441-9bd0-49588b952728", "First order", 1);
			Order("fc41cc01-6dc3-4ca5-88a4-c4a463cd6316", "Second order", 1);
			Order("f1379562-c779-43bc-a507-71a8506ca8c9", "Third order", 1);
			Context.SaveChanges();
			await EnsureUsersAsync(true);
			await roleManager.CreateAsync(new IdentityRole("Admin"));
			await roleManager.CreateAsync(new IdentityRole("User"));
			await _userManager.AddToRoleAsync(await _userManager.FindByIdAsync("1"), "Admin");
			await _userManager.AddToRoleAsync(await _userManager.FindByIdAsync("1"), "User");
			await _userManager.AddToRoleAsync(await _userManager.FindByIdAsync("2"), "User");
		}
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl           = returnUrl ?? this.Url.Content("~/");
            this.ExternalLogins = (await this._signInManager
                                   .GetExternalAuthenticationSchemesAsync()).ToList();

            if (this.ModelState.IsValid)
            {
                EventuresUser user = new EventuresUser
                {
                    UserName  = this.Input.Username,
                    Email     = this.Input.Email,
                    FirstName = this.Input.FirstName,
                    LastName  = this.Input.LastName,
                    UCN       = this.Input.UCN
                };
                IdentityResult result = await this._userManager.CreateAsync(user, this.Input.Password);


                if (result.Succeeded)
                {
                    this._logger.LogInformation("User created a new account with password.");

                    if ((await _userManager.GetUsersInRoleAsync("Admin")).Count() == 0)
                    {
                        await _userManager.AddToRoleAsync(user, "Admin");
                    }

                    else
                    {
                        await _userManager.AddToRoleAsync(user, "User");
                    }

                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    //var callbackUrl = Url.Page(
                    //    "/Account/ConfirmEmail",
                    //    pageHandler: null,
                    //    values: new { area = "Identity", userId = user.Id, code = code },
                    //    protocol: Request.Scheme);

                    //await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                    //    $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (this._userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(this.RedirectToPage("RegisterConfirmation", new { email = this.Input.Email }));
                    }
                    else
                    {
                        await this._signInManager.SignInAsync(user, isPersistent : false);

                        return(this.LocalRedirect(returnUrl));
                    }
                }
                foreach (IdentityError error in result.Errors)
                {
                    this.ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(this.Page());
        }
        public async Task<ActionResult>  Create(RegisterViewModel userViewModel, string RoleId, [Bind(Include="Name")] ApplicationUser kUser, string[] selectedKPIs)
        {
          
            if(selectedKPIs != null)
            {
                kUser.KPIs = new List<KPI>();
                foreach(var kpi in selectedKPIs){
                    var kpiToAdd = context.KPIs.Find(int.Parse(kpi));
                    kUser.KPIs.Add(kpiToAdd);

                }
            }
            
            if (ModelState.IsValid)
            {
                var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
                var userinfo = new MyUserInfo()
                {
                    FirstName = userViewModel.FirstName,
                    LastName = userViewModel.LastName
                };
                var user = new ApplicationUser();
                user.UserName = userViewModel.UserName;
                user.Email = userViewModel.Email;
                user.MyUserInfo = userinfo;
                var adminresult =  UserManager.Create(user, userViewModel.Password);
         
                context.Users.Add(user);
                context.SaveChanges();
              
    
                //Add User Admin to Role Admin
                if (adminresult.Succeeded)
                {
                    if (!String.IsNullOrEmpty(RoleId))
                    {
                        //Find Role Admin
                        var role = await RoleManager.FindByIdAsync(RoleId);
                        var result = await UserManager.AddToRoleAsync(user.Id, role.Name);
                        if (!result.Succeeded)
                        {
                            ModelState.AddModelError("", result.Errors.First().ToString());
                            ViewBag.RoleId = new SelectList(await RoleManager.Roles.ToListAsync(), "Id", "Name");
                            return View();
                        }
                    }
                }
                else
                {
                    ModelState.AddModelError("", adminresult.Errors.First().ToString());
                    ViewBag.RoleId = new SelectList(RoleManager.Roles, "Id", "Name");
                    return View();

                }
                return RedirectToAction("Index");
            }
            else
            {
                ViewBag.RoleId = new SelectList(RoleManager.Roles, "Id", "Name");
                return View();
            }
        }
Beispiel #47
0
        private async Task CreateAcount(ApplicationDbContext context, UserManager<ApplicationUser> userManager, string name, string surname, string email, string password, Configurations.Role role, Configurations.UserType userType)
        {

            if (context.Consumers.Any(x => x.Email == email) || context.Producers.Any(x => x.Email == email))
                return;
            User user;
            switch(userType)
            {
                case Configurations.UserType.Producer:
                    user = new Producer();
                    break;
                case Configurations.UserType.Consumer:
                    user = new Consumer();
                    break;
                default:
                    user = new Consumer();
                    break;
            }                
            user.Name = name;
            user.Surname = surname;
            user.Email = email;
            user.Avatar = Path.Combine(Configurations.UserAvatarStockagePath, Configurations.DefaultFileName);
            user.RegistrationDate = DateTime.Now;
            user.Enable = true;

            switch (userType)
            {
                case Configurations.UserType.Producer:
                    Producer producer = user as Producer;
                    producer.CompanyName = "La ferme de " + producer.Name;
		    producer.Latitude = 44.7354673;
		    producer.Longitude = 4.601407399999971;
                    context.Producers.Add(producer);
                    break;
                case Configurations.UserType.Consumer:
                    context.Consumers.Add(user as Consumer);
                    break;
                default:
                    context.Consumers.Add(user as Consumer);
                    break;
            }


#region Creating linked application data
            var appUser = new ApplicationUser { UserName = user.Email, Email = user.Email };
            appUser.User = user;

            var result = await userManager.CreateAsync(appUser, password);
            if (result.Succeeded)
            {
                //Add user role
                result = await userManager.AddToRoleAsync(appUser, role.ToString());
                //Add user type
                result = await userManager.AddToRoleAsync(appUser, userType.ToString());
            }
#endregion Creating linked application data

            context.SaveChanges();

        }
Beispiel #48
0
        public static void DatabaseInitData(ApplicationDbContext dbContext, UserManager<ApplicationUser> userManager, RoleManager<IdentityRole> roleManager)
        {
            if (!dbContext.Users.Any())
            {
                var user = new ApplicationUser { UserName = "******", Email = "*****@*****.**" };
                var result = userManager.CreateAsync(user, "Admin@1");

                userManager.AddToRoleAsync(user, RoleNames.Admin);
            }
            if (!dbContext.Cities.Any())
            {
                dbContext.Cities.Add(new City {Name = "Рязань"});
                dbContext.Cities.Add(new City {Name = "Тула"});

                dbContext.SaveChanges();
            }

            if (!dbContext.TypesHousing.Any())
            {
                var houseTypes = new List<TypesHousing>
                {
                    new TypesHousing {Name = "1-к квартира"},
                    new TypesHousing {Name = "2-к квартира"},
                    new TypesHousing {Name = "3-к квартира"},
                    new TypesHousing {Name = "4-к квартира"},
                    new TypesHousing {Name = "5-к квартира"},
                    new TypesHousing {Name = "комната"},
                    new TypesHousing {Name = "коммуналка"}
                };


                var additionList = new string[]
                {
                    "Дом",
                    "Флигель",
                    "Гостинка",
                    "Малосемейка",
                    "Комната в общежитии",
                    "Койко-место",
                    "Коттедж",
                    "Особняк",
                    "Часть дома",
                    "Комната в секции"
                };

                foreach (var item in additionList)
                {
                    houseTypes.Add(new TypesHousing {Name = item });
                }

                foreach (var type in houseTypes)
                {
                    dbContext.TypesHousing.Add(type);
                }

                dbContext.SaveChanges();
            }

            if (!dbContext.Districts.Any())
            {
                var ryazan = dbContext.Cities.First(x => x.Id == 1);
                var tula = dbContext.Cities.First(x => x.Id == 2);
                var districs = new District[]
                    {
                        new District { Name = "Дашково Песочня", City = ryazan },
                         new District { Name = "Дягилево", City = ryazan},
                         new District { Name = "Кальное", City = ryazan},
                         new District { Name = "Канищево", City = ryazan},
                        new District { Name =  "Михайловское шоссе", City = ryazan},
                        new District { Name =  "Московский", City = ryazan},
                         new District { Name = "Недостоево", City = ryazan},
                         new District { Name = "Приокский", City = ryazan},
                        new District { Name =  "Роща", City = ryazan},
                        new District { Name =  "Рыбное", City = ryazan},
                        new District { Name =  "Рязанский р-н", City = ryazan},
                        new District { Name =  "Соколовка", City = ryazan},
                        new District { Name =  "Солотча", City = tula},
                        new District { Name =  "Центр", City = tula},
                        new District { Name =  "Шлаковый", City = tula},
                         new District { Name = "Южный", City = tula},
                         new District { Name = "Центральный р-н", City = tula},
                         new District { Name = "Советский р-н", City = tula},
                         new District { Name = "Привокзальный р-н", City = tula},
                         new District { Name = "Зареченский р-н", City = tula},
                        new District { Name =  "Пролетарский р-н", City = tula},
                        new District { Name =  "Тульская обл", City = tula}
                    };

                foreach (var district in districs)
                {
                    dbContext.Districts.Add(district);
                }

                dbContext.SaveChanges();
            }


            if (!dbContext.Streets.Any())
            {
                #region

                var streets = new Street[]
                {
                    new Street {Name = "1 Мая ул"},
                    new Street {Name = "1 Район ул"},
                    new Street {Name = "1-й Авиационный проезд"},
                    new Street {Name = "1-й Аллейный проезд"},
                    new Street {Name = "1-й Базарный проезд"},
                    new Street {Name = "1-й Дачный пер"},
                    new Street {Name = "1-й Крайний проезд"},
                    new Street {Name = "1-й Озерный пер"},
                    new Street {Name = "1-й Тракторный проезд"},
                    new Street {Name = "10 Линия ул"},
                    new Street {Name = "10 Район ул"},
                    new Street {Name = "11 Линия ул"},
                    new Street {Name = "11 Район ул"},
                    new Street {Name = "12 Линия ул"},
                    new Street {Name = "12 Район ул"},
                    new Street {Name = "14 Линия ул"},
                    new Street {Name = "1905 года пер"},
                    new Street {Name = "2 Бутырки ул"},
                    new Street {Name = "2 Линия ул"},
                    new Street {Name = "2 Район ул"},
                    new Street {Name = "2-й Авиационный проезд"},
                    new Street {Name = "2-й Аллейный проезд"},
                    new Street {Name = "2-й Базарный проезд"},
                    new Street {Name = "2-й Дачный пер"},
                    new Street {Name = "2-й Дягилевский проезд"},
                    new Street {Name = "2-й Крайний проезд"},
                    new Street {Name = "2-й Озерный пер"},
                    new Street {Name = "2-й Тракторный проезд"},
                    new Street {Name = "26 Бакинских Комиссаров пл"},
                    new Street {Name = "3 Бутырки ул"},
                    new Street {Name = "3 Линия ул"},
                    new Street {Name = "3 Район ул"},
                    new Street {Name = "3-й Авиационный проезд"},
                    new Street {Name = "3-й Аллейный проезд"},
                    new Street {Name = "3-й Базарный проезд"},
                    new Street {Name = "3-й Дачный пер"},
                    new Street {Name = "3-й Дягилевский проезд"},
                    new Street {Name = "3-й Озерный пер"},
                    new Street {Name = "3-й Тракторный проезд"},
                    new Street {Name = "3-й Усадебный проезд"},
                    new Street {Name = "4 Линия ул"},
                    new Street {Name = "4 Район ул"},
                    new Street {Name = "4-й Авиационный проезд"},
                    new Street {Name = "4-й Аллейный проезд"},
                    new Street {Name = "4-й Дачный пер"},
                    new Street {Name = "4-й Дягилевский проезд"},
                    new Street {Name = "4-й Озерный пер"},
                    new Street {Name = "4-й Озёрный пер"},
                    new Street {Name = "4-й Тракторный проезд"},
                    new Street {Name = "4-й Усадебный проезд"},
                    new Street {Name = "5 Линия ул"},
                    new Street {Name = "5 Район ул"},
                    new Street {Name = "5-й Авиационный проезд"},
                    new Street {Name = "5-й Аллейный проезд"},
                    new Street {Name = "5-й Дягилевский проезд"},
                    new Street {Name = "5-й Озерный пер"},
                    new Street {Name = "50-летия Октября пл"},
                    new Street {Name = "6 Линия ул"},
                    new Street {Name = "6-й Авиационный проезд"},
                    new Street {Name = "6-й Аллейный проезд"},
                    new Street {Name = "7 Линия ул"},
                    new Street {Name = "7 Район ул"},
                    new Street {Name = "7-й Авиационный проезд"},
                    new Street {Name = "7-й Аллейный проезд"},
                    new Street {Name = "8 Линия ул"},
                    new Street {Name = "8 Марта ул"},
                    new Street {Name = "8 Район ул"},
                    new Street {Name = "8-й Авиационный проезд"},
                    new Street {Name = "9 Линия пер"},
                    new Street {Name = "9 Линия ул"},
                    new Street {Name = "9 Район ул"},
                    new Street {Name = "Авиационная ул"},
                    new Street {Name = "Аллейная 8-й проезд"},
                    new Street {Name = "Аллейная ул"},
                    new Street {Name = "Бабушкина 1-й проезд"},
                    new Street {Name = "Бабушкина ул"},
                    new Street {Name = "Баженова пер"},
                    new Street {Name = "Баженова ул"},
                    new Street {Name = "Базарная ул"},
                    new Street {Name = "Бахмачеевская ул"},
                    new Street {Name = "Безбожная 1-я ул"},
                    new Street {Name = "Безбожная 2-я ул"},
                    new Street {Name = "Белинского проезд"},
                    new Street {Name = "Белинского ул"},
                    new Street {Name = "Белякова ул"},
                    new Street {Name = "Березняковская ул"},
                    new Street {Name = "Березовая ул"},
                    new Street {Name = "Библиотечная ул"},
                    new Street {Name = "Бирюзова ул"},
                    new Street {Name = "Боголюбова ул"},
                    new Street {Name = "Божатково мкр"},
                    new Street {Name = "Божатково п"},
                    new Street {Name = "Больничная (Солотча) ул"},
                    new Street {Name = "Большая (Шереметьево-Песочня) ул"},
                    new Street {Name = "Борки мкр"},
                    new Street {Name = "Братиславская ул"},
                    new Street {Name = "Бронная ул"},
                    new Street {Name = "Бульварный пер"},
                    new Street {Name = "Быстрецкая ул"},
                    new Street {Name = "Вагоны (Соколовка) тер"},
                    new Street {Name = "Введенская ул"},
                    new Street {Name = "Великанова ул"},
                    new Street {Name = "Верхняя ул"},
                    new Street {Name = "Весенняя (Канищево) ул"},
                    new Street {Name = "Весенняя ул"},
                    new Street {Name = "Ветеринарная ул"},
                    new Street {Name = "Вишневая ул"},
                    new Street {Name = "Вишневый (Канищево) пер"},
                    new Street {Name = "Владимирская (Солотча) ул"},
                    new Street {Name = "Вознесенская ул"},
                    new Street {Name = "Войкова пер"},
                    new Street {Name = "Вокзальная ул"},
                    new Street {Name = "Вольная (Солотча) ул"},
                    new Street {Name = "Восточная ул"},
                    new Street {Name = "Восточный промузел мкр"},
                    new Street {Name = "Высоковольтная ул"},
                    new Street {Name = "Гагарина (Соколовка) ул"},
                    new Street {Name = "Гагарина 1-й проезд"},
                    new Street {Name = "Гагарина 2-й проезд"},
                    new Street {Name = "Гагарина 3-й проезд"},
                    new Street {Name = "Гагарина 4-й проезд"},
                    new Street {Name = "Гагарина ул"},
                    new Street {Name = "Газетный пер"},
                    new Street {Name = "Гайдара (Солотча) ул"},
                    new Street {Name = "Гайдара ул"},
                    new Street {Name = "Гаражная ул"},
                    new Street {Name = "Гвардейская ул"},
                    new Street {Name = "Гоголя проезд"},
                    new Street {Name = "Гоголя ул"},
                    new Street {Name = "Голенчинская ул"},
                    new Street {Name = "Голенчинское ш"},
                    new Street {Name = "Горького ул"},
                    new Street {Name = "Гражданская 2-й пер"},
                    new Street {Name = "Гражданская ул"},
                    new Street {Name = "Гражданский 1-й проезд"},
                    new Street {Name = "Грибоедова проезд"},
                    new Street {Name = "Грибоедова ул"},
                    new Street {Name = "Дачная (Канищево) ул"},
                    new Street {Name = "Дачная (Соколовка) ул"},
                    new Street {Name = "Дачная (Солотча) ул"},
                    new Street {Name = "Дачная ул"},
                    new Street {Name = "Дашковская ул"},
                    new Street {Name = "Декабристов проезд"},
                    new Street {Name = "Декабристов ул"},
                    new Street {Name = "Дзержинского ул"},
                    new Street {Name = "Димитрова пл"},
                    new Street {Name = "Димитрова ул"},
                    new Street {Name = "Добролюбова 1-й проезд"},
                    new Street {Name = "Добролюбова 2-й проезд"},
                    new Street {Name = "Добролюбова 3-й проезд"},
                    new Street {Name = "Добролюбова 4-й проезд"},
                    new Street {Name = "Добролюбова 5-й проезд"},
                    new Street {Name = "Добролюбова 6-й проезд"},
                    new Street {Name = "Добролюбова ул"},
                    new Street {Name = "Дорожная (Канищево) ул"},
                    new Street {Name = "Дорожная (Соколовка) ул"},
                    new Street {Name = "Дорожный пер"},
                    new Street {Name = "Достоевского ул"},
                    new Street {Name = "Дружная ул"},
                    new Street {Name = "Дунай (Солотча) ул"},
                    new Street {Name = "Дягилево п"},
                    new Street {Name = "Дягилево ст"},
                    new Street {Name = "Дягилевская ул"},
                    new Street {Name = "Есенина ул"},
                    new Street {Name = "Железнодорожная (Соколовка) ул"},
                    new Street {Name = "Железнодорожная (Солотча) ул"},
                    new Street {Name = "Железнодорожная 1-я ул"},
                    new Street {Name = "Железнодорожная 2-я ул"},
                    new Street {Name = "Животноводческая ул"},
                    new Street {Name = "Животноводческий проезд"},
                    new Street {Name = "Забайкальская ул"},
                    new Street {Name = "Заводская проезд"},
                    new Street {Name = "Завражнова проезд"},
                    new Street {Name = "Загородная ул"},
                    new Street {Name = "Западная ул"},
                    new Street {Name = "Запрудная ул"},
                    new Street {Name = "Заречная ул"},
                    new Street {Name = "Затинная ул"},
                    new Street {Name = "Зафабричная ул"},
                    new Street {Name = "Земляничная ул"},
                    new Street {Name = "Земляничный 1-й проезд"},
                    new Street {Name = "Земляничный 2-й проезд"},
                    new Street {Name = "Земляничный пер"},
                    new Street {Name = "Зубковой ул"},
                    new Street {Name = "Индустриальный 1-й пер"},
                    new Street {Name = "Интернатская ул"},
                    new Street {Name = "Интернациональная ул"},
                    new Street {Name = "К.Маркса ул"},
                    new Street {Name = "Кальная ул"},
                    new Street {Name = "Кальновский туп"},
                    new Street {Name = "Кальное мкр"},
                    new Street {Name = "Кальной проезд"},
                    new Street {Name = "Канищево п"},
                    new Street {Name = "Карцево п"},
                    new Street {Name = "Карцево тер"},
                    new Street {Name = "Карьерная ул"},
                    new Street {Name = "Касимовский пер"},
                    new Street {Name = "Касимовское ш"},
                    new Street {Name = "Качевская ул"},
                    new Street {Name = "Каширина ул"},
                    new Street {Name = "Керамзавода ул"},
                    new Street {Name = "Керамические Выселки ул"},
                    new Street {Name = "Кирпичного завода ул"},
                    new Street {Name = "Коломенская ул"},
                    new Street {Name = "Коломенский 1-й проезд"},
                    new Street {Name = "Коломенский 2-й проезд"},
                    new Street {Name = "Коломенский 3-й проезд"},
                    new Street {Name = "Коломенский 4-й проезд"},
                    new Street {Name = "Коломенский 5-й проезд"},
                    new Street {Name = "Коломенский 6-й проезд"},
                    new Street {Name = "Колхозная (Канищево) ул"},
                    new Street {Name = "Колхозная (Семчино) ул"},
                    new Street {Name = "Колхозная ул"},
                    new Street {Name = "Колхозный проезд"},
                    new Street {Name = "Кольцова ул"},
                    new Street {Name = "Комбайновая ул"},
                    new Street {Name = "Коммунистический пер"},
                    new Street {Name = "Комсомольский пер"},
                    new Street {Name = "Коняева 1-й проезд"},
                    new Street {Name = "Коняева 2-й проезд"},
                    new Street {Name = "Коняева 3-й проезд"},
                    new Street {Name = "Коняева 4-й проезд"},
                    new Street {Name = "Коняева 5-й проезд"},
                    new Street {Name = "Коняева ул"},
                    new Street {Name = "Корнилова ул"},
                    new Street {Name = "Космодемьянской 1-й проезд"},
                    new Street {Name = "Космодемьянской ул"},
                    new Street {Name = "Космонавтов ул"},
                    new Street {Name = "Костычева ул"},
                    new Street {Name = "Котовского проезд"},
                    new Street {Name = "Котовского ул"},
                    new Street {Name = "Крайняя ул"},
                    new Street {Name = "Красная 1-я ул"},
                    new Street {Name = "Красная 2-я ул"},
                    new Street {Name = "Краснорядская ул"},
                    new Street {Name = "Кремлевский вал"},
                    new Street {Name = "Кремль ул"},
                    new Street {Name = "Крупской ул"},
                    new Street {Name = "Кудрявцева ул"},
                    new Street {Name = "Куйбышевское ш"},
                    new Street {Name = "Культуры ул"},
                    new Street {Name = "Кутузова ул"},
                    new Street {Name = "Л.Шевцовой ул"},
                    new Street {Name = "Лагерная ул"},
                    new Street {Name = "Лево-Лыбедска ул"},
                    new Street {Name = "Ленина пл"}
                };


                #endregion

                var cityList = dbContext.Cities.Select(x => x.Id).ToList();
                foreach (var street in streets)
                {
                    street.CityId = cityList[Random.Next(cityList.Count)];
                    dbContext.Streets.Add(street);
                }

                dbContext.SaveChanges();
            }

            if (!dbContext.Housing.Any())
            {
                for (int i = 0; i < 100; i++)
                {
                    dbContext.Housing.Add(CreateHousingRadnom(dbContext));
                    dbContext.SaveChanges();
                }
            }
        }
Beispiel #49
-1
 private async static void InitializeUserAdmin(ApplicationDbContext context, UserManager<ApplicationUser> userManager)
 {
     ApplicationUser admin = new ApplicationUser
     {
         UserName = "******",
         Email = "*****@*****.**",
         DateOfBirth = new DateTime(1990, 1, 1),
         EmailConfirmed = true
     };
     Thread.Sleep(2000);
     await userManager.CreateAsync(admin, "Beast@2"); //password must match constraints of 6 char min, case-change, min 1 number and non-letter character
     Thread.Sleep(2000);
     await userManager.AddToRoleAsync(admin, "admin");
     context.SaveChanges();
 }