コード例 #1
0
        public async Task RegisterAsync_ShouldReturnAppUserObject()
        {
            //preparing the Data Access Layer class that going in the Busineess Logic class
            //Mocking
            //1. Arrange
            var mockDalClass = new Mock <IAppUserDal>();

            //Checking Unique
            mockDalClass.Setup(x => x.GetAppUserByIdAsync(It.IsAny <string>()))
            .ReturnsAsync((AppUser)(null));
            mockDalClass.Setup(x => x.GetAppUserByNickNameAsync(It.IsAny <string>()))
            .ReturnsAsync((AppUser)(null));
            //Creating New User
            mockDalClass.Setup(x => x.CreateNewAppUserAsync(It.IsAny <AppUser>()))
            .ReturnsAsync(true);


            var userDal = new AppUserBll(mockDalClass.Object);

            //2. Act
            var returnAppUser = await userDal.RegisterAsync(new AppUser()
            {
                No          = 1,
                Id          = "test123",
                NickName    = "nickDan",
                Password    = "******",
                AccessLevel = 1
            });

            //3.Assert

            Assert.NotNull(returnAppUser);
        }
コード例 #2
0
        public async Task VarifyUserAsync_ShouldReturnAppUserObject()
        {
            //preparing the Data Access Layer class that going in the Busineess Logic class
            //Mocking
            //1. Arrange
            var mockDalClass = new Mock <IAppUserDal>();
            //hash of password qwer1234
            var hashedPassword = "******";

            mockDalClass.Setup(x => x.GetAppUserByIdAsync(It.IsAny <string>()))
            .ReturnsAsync(new AppUser()
            {
                No       = 1,
                Id       = "test123",
                NickName = "nickDan"
                ,
                Password    = hashedPassword,
                AccessLevel = 1
            });

            var userBll = new AppUserBll(mockDalClass.Object);

            //2. Act
            var returnAppUser = await userBll.VerifyUserAsync("test123", "qwer1234");

            //3.Assert
            Assert.NotNull(returnAppUser);
        }
コード例 #3
0
        public async Task <IdentityResult> CreateAsync(AppUserBll userBll, string password)
        {
            IdentityUser   user   = mapper.Map <AppUserBll, AppUser>(userBll);
            IdentityResult result = null;
            IdentityResult res    = null;

            List <Task <IdentityResult> > createRoles = new List <Task <IdentityResult> >();

            if (await db.RoleManager.FindByNameAsync("Teacher") == null)
            {
                createRoles.Add(db.RoleManager.CreateAsync(new IdentityRole("Teacher")));
            }
            if (await db.RoleManager.FindByNameAsync("Student") == null)
            {
                createRoles.Add(db.RoleManager.CreateAsync(new IdentityRole("Student")));
            }
            if (await db.RoleManager.FindByNameAsync("Moderator") == null)
            {
                createRoles.Add(db.RoleManager.CreateAsync(new IdentityRole("Moderator")));
            }

            await Task.WhenAll(createRoles);

            result = await db.UserManager.CreateAsync(user, password);

            if (result.Succeeded)
            {
                res = await db.UserManager.AddToRoleAsync(user, userBll.Role);

                Person person;
                if ((userBll.Role == "Teacher") || userBll.Role == "Moderator")
                {
                    person = new Teacher()
                    {
                        FirstName  = userBll.FirstName,
                        LastName   = userBll.LastName,
                        IdentityId = userBll.Id,
                        Department = userBll.Department
                    };
                }
                else
                {
                    person = new Student()
                    {
                        FirstName  = userBll.FirstName,
                        LastName   = userBll.LastName,
                        IdentityId = userBll.Id,
                    };
                }
                db.RersonManager.Create(person);
            }
            return(result);
        }
コード例 #4
0
        public async Task <IActionResult> Post([FromBody] RegistrationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            AppUserBll userIdentity = mapper.Map <RegistrationViewModel, AppUserBll>(model);

            IdentityResult result = await userService.CreateAsync(userIdentity, model.Password);

            if (!result.Succeeded)
            {
                return(new BadRequestObjectResult(Errors.AddErrorsToModelState(result, ModelState)));
            }

            return(new OkObjectResult("Account created"));
        }
コード例 #5
0
 public AuthController(AppUserBll userBll, IAntiforgery antiforgery)
 {
     _userBll     = userBll;
     _antiforgery = antiforgery;
 }