public async Task <IActionResult> PostRole([FromBody] IdentityRole role)
        {
            //creating the roles and seeding them to the database
            var roleExist = await RoleManager.RoleExistsAsync(role.ToString());

            if (!roleExist)
            {
                roleResult = await RoleManager.CreateAsync(new IdentityRole(role.ToString()));
            }
            return(CreatedAtAction("GetRoles", new { id = role.Id }, roleResult));
        }
Example #2
0
        public async Task <IActionResult> Register(RegisterViewModel registerVM, string role)
        {
            List <IdentityRole> allroles = _roleManager.Roles.ToList();
            List <IdentityRole> roles    = new List <IdentityRole>();

            foreach (var item in allroles)
            {
                if (item.Name != "Admin")
                {
                    roles.Add(item);
                }
            }

            ViewBag.allRoles = new SelectList(roles, "Id", "Name");



            if (!ModelState.IsValid)
            {
                return(View());
            }
            AppUser newUser = new AppUser
            {
                UserName    = registerVM.UserName,
                Email       = registerVM.Email,
                PhoneNumber = registerVM.Phone
            };



            IdentityResult identityResult = await _userManager.CreateAsync(newUser, registerVM.Password);

            if (!identityResult.Succeeded)
            {
                foreach (var error in identityResult.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
                return(View(registerVM));
            }



            IdentityRole dbRole = await _roleManager.FindByIdAsync(role);

            await _userManager.AddToRoleAsync(newUser, dbRole.Name);

            await _signInManager.SignInAsync(newUser, true);

            if (dbRole.ToString() == "User")
            {
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                return(RedirectToAction("VendorCreate", "Account"));
            }
        }
			public async Task Creating_same_role_twice_returns_DuplicateRoleName_error()
			{
				// arrange
				var role = new IdentityRole("Creating_same_role_twice_returns_DuplicateRoleName_error");

				// act
				var result1 = await _roleStore.CreateAsync(role);

				role.Name = "a different name, but same Id";
				var result2 = await _roleStore.CreateAsync(role);

				// assert
				IdentityResultAssert.IsSuccess(result1);

				var expectedError = IdentityResult.Failed(_errorDescriber.DuplicateRoleName(role.ToString()));
				IdentityResultAssert.IsFailure(result2, expectedError.Errors.FirstOrDefault());
			}
Example #4
0
            public async Task Updating_role_name_to_existing_name_returns_DuplicateRoleName_error()
            {
                // arrange
                var role1 = new IdentityRole("Updating_role_name_to_existing_name_returns_DuplicateRoleName_error");
                var role2 = new IdentityRole("Updating_role_name_to_existing_name_returns_DuplicateRoleName_error different");

                await _roleStore.CreateAsync(role1);

                await _roleStore.CreateAsync(role2);

                // act
                role2.Name = role1.Name;
                var result3 = await _roleStore.UpdateAsync(role2);

                // assert
                var expectedError = IdentityResult.Failed(_errorDescriber.DuplicateRoleName(role2.ToString()));

                IdentityResultAssert.IsFailure(result3, expectedError.Errors.FirstOrDefault());
            }
Example #5
0
            public async Task Creating_two_different_roles_but_same_Name_returns_DuplicateRoleName_error()
            {
                // arrange
                var role1 = new IdentityRole("Creating_two_different_roles_but_same_Name_returns_DuplicateRoleName_error");
                var role2 = new IdentityRole(role1.Name);

                // act
                var result1 = await _roleStore.CreateAsync(role1);

                var result2 = await _roleStore.CreateAsync(role2);

                // assert
                IdentityResultAssert.IsSuccess(result1);

                var expectedError = IdentityResult.Failed(_errorDescriber.DuplicateRoleName(role2.ToString()));

                IdentityResultAssert.IsFailure(result2, expectedError.Errors.FirstOrDefault());
            }
			public async Task Updating_role_name_to_existing_name_returns_DuplicateRoleName_error()
			{
				// arrange
				var role1 = new IdentityRole("Updating_role_name_to_existing_name_returns_DuplicateRoleName_error");
				var role2 = new IdentityRole("Updating_role_name_to_existing_name_returns_DuplicateRoleName_error different");

				await _roleStore.CreateAsync(role1);
				await _roleStore.CreateAsync(role2);

				// act
				role2.Name = role1.Name;
				var result3= await _roleStore.UpdateAsync(role2);

				// assert
				var expectedError = IdentityResult.Failed(_errorDescriber.DuplicateRoleName(role2.ToString()));
				IdentityResultAssert.IsFailure(result3, expectedError.Errors.FirstOrDefault());
			}
			public async Task Creating_two_different_roles_with_same_Name_different_casing_returns_DuplicateRoleName_error()
			{
				// arrange
				var role1 = new IdentityRole("Creating_two_different_roles_with_same_Name_different_casing_returns_DuplicateRoleName_error");
				var role2 = new IdentityRole(role1.Name.ToUpper());

				// act
				var result1 = await _roleStore.CreateAsync(role1);
				var result2 = await _roleStore.CreateAsync(role2);

				// assert
				IdentityResultAssert.IsSuccess(result1);

				var expectedError = IdentityResult.Failed(_errorDescriber.DuplicateRoleName(role2.ToString()));
				IdentityResultAssert.IsFailure(result2, expectedError.Errors.FirstOrDefault());
			}
Example #8
0
        public async Task <IActionResult> Register(RegisterVM registerVM, string role)
        {
            List <IdentityRole> allroles = _roleManager.Roles.ToList();
            List <IdentityRole> roles    = new List <IdentityRole>();

            foreach (var item in allroles)
            {
                if (item.Name != "Admin")
                {
                    roles.Add(item);
                }
            }

            ViewBag.allRoles = new SelectList(roles, "Id", "Name");



            if (!ModelState.IsValid)
            {
                return(View());
            }
            AppUser newUser = new AppUser
            {
                FullName = registerVM.Fullname,
                UserName = registerVM.Username,
                Email    = registerVM.Email,
            };

            IdentityResult identityResult = await _userManager.CreateAsync(newUser, registerVM.Password);

            if (!identityResult.Succeeded)
            {
                foreach (var error in identityResult.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
                return(View(registerVM));
            }
            newUser.isActivated = true;

            IdentityRole dbRole = await _roleManager.FindByIdAsync(role);

            //await _userManager.AddToRoleAsync(newUser, Helper.Role.Admin.ToString());
            //await _userManager.AddToRoleAsync(newUser, "Employer");
            //await _userManager.AddToRoleAsync(newUser, "Employe


            await _userManager.AddToRoleAsync(newUser, dbRole.Name);



            //var code = await _userManager.GenerateEmailConfirmationTokenAsync(newUser);
            //var href = Url.Action("ConfirmEmail", "Account", new { userId = newUser.Id, code = code }, protocol: Request.Scheme);
            //EmailServices emailService = new EmailServices();
            //await emailService.SendEmailAsync(newUser.Email,
            //"Confirm your Account", $"Qeydiyyati tamamlamaq ucun linkden kecid edin <a href='{href}'>click link</a>");



            await _signInManager.SignInAsync(newUser, true);

            if (dbRole.ToString() == "Employee")
            {
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                return(RedirectToAction("Create", "Employer"));
            }
        }