Example #1
0
        public async Task <RegisterResultDto> Register(RegisterInfoDto registerInfo)
        {
            var result = new RegisterResultDto();

            var user = new UserEntity {
                UserName = registerInfo.Username, DisplayName = registerInfo.Username
            };
            IdentityResult creareUserResult = await _userManager.CreateAsync(user, registerInfo.Password);

            if (creareUserResult.Succeeded)
            {
                result.Result = RegisterResultEnum.Success;
                result.Token  = _tokenService.GetToken(user);
            }
            else if (creareUserResult.Errors.Any(x => string.Equals(x.Code, "DuplicateUserName")))
            {
                result.Result = RegisterResultEnum.UsernameAlreadyExists;
            }
            else
            {
                result.Result = RegisterResultEnum.Unknown;
            }

            return(result);
        }
        public async Task <RegisterResultDto> Register(RegisterUserDto registerInfo)
        {
            CheckCode(registerInfo.Code);

            //可能您需要对手机号进行唯一验证..

            var user = MiCakeApp.User.Create(registerInfo.Phone, registerInfo.Password, registerInfo.Name, registerInfo.Age);
            await _userRepo.AddUserAsync(user);

            return(RegisterResultDto.RegisterSuccess(user.Id));
        }
        public async Task <RegisterResultDto> RegisterUser(RegisterWeChatUserDto userDto)
        {
            CheckValue.NotNullOrWhiteSpace(userDto.SessionKey, "SessionKey");

            var weChatSessionInfo = await _weChatSessionStore.GetSessionInfo(userDto.SessionKey) ?? throw new ArgumentException("没有找到匹配的微信密匙信息");

            var newUser = MiCakeApp.User.Create(userDto.Phone, "abc12345", userDto.Name, userDto.Age);

            //可能你还有其它的验证逻辑,比如包括该手机号码是否已经被使用等等。
            //这些领域逻辑可能会被移动至单独的领域服务来处理.

            await _userRepository.AddAsync(newUser);

            await _wechatRepository.AddAsync(new UserWithWechat(newUser.Id, weChatSessionInfo.OpenId));

            return(RegisterResultDto.RegisterSuccess(newUser.Id));
        }
Example #4
0
        public AccountControllerFixture()
        {
            ApiVersion = new ApiVersion(1, 0);

            MockAccountRepository = new Mock <IAccountRepository>();

            HttpContext = new DefaultHttpContext();
            Users       = new List <GetUserDto>
            {
                new GetUserDto
                {
                    Id          = Guid.NewGuid(),
                    FirstName   = "Anna",
                    LastName    = "Domino",
                    Email       = "*****@*****.**",
                    PhoneNumber = "",
                    Roles       = new List <string> {
                        "SuperAdmin", "Admin", "Report", "Normal"
                    }
                },
                new GetUserDto
                {
                    Id          = Guid.NewGuid(),
                    FirstName   = "Neil",
                    LastName    = "Down",
                    Email       = "*****@*****.**",
                    PhoneNumber = "",
                    Roles       = new List <string> {
                        "Admin"
                    }
                },
                new GetUserDto
                {
                    Id          = Guid.NewGuid(),
                    FirstName   = "Mark",
                    LastName    = "Ateer",
                    Email       = "*****@*****.**",
                    PhoneNumber = "",
                    Roles       = new List <string> {
                        "Report", "Normal"
                    }
                },
                new GetUserDto
                {
                    Id          = Guid.NewGuid(),
                    FirstName   = "Dave",
                    LastName    = "Allippa",
                    Email       = "*****@*****.**",
                    PhoneNumber = "",
                    Roles       = new List <string> {
                        "Normal"
                    }
                }
            };

            ValidLoginDto = new LoginDto
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            ValidRegisterAdminDto = new RegisterAdminDto
            {
                FirstName       = "John",
                LastName        = "Quil",
                ConfirmPassword = "******",
                Password        = "******",
                Email           = "*****@*****.**"
            };

            ValidRegisterNormalDto = new RegisterNormalDto
            {
                FirstName       = "Rose",
                LastName        = "Bush",
                ConfirmPassword = "******",
                Password        = "******",
                Email           = "*****@*****.**",
                Roles           = new List <string> {
                    "Report", "Normal"
                }
            };

            ValidLoginDto = new LoginDto
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            ValidRefreshDto = new RefreshDto
            {
                RefreshToken = "this is refresh token"
            };

            ValidRevokeDto = new RevokeDto
            {
                RefreshToken = "this is refresh JWT token"
            };

            SuccessAdminRegisterResultDto = new RegisterResultDto
            {
                Status  = "Success",
                Message = "User created successfully, grant Admin access."
            };

            FailedRegisterResultDto = new RegisterResultDto
            {
                Status  = "Failed",
                Message = "Failed to create new user."
            };

            SuccessNormalRegisterResultDto = new RegisterResultDto
            {
                Status  = "Success",
                Message = $"User created successfully, grant {string.Join(", ", ValidRegisterNormalDto.Roles)} access."
            };

            ValidTokenResultDtoResult = new TokenResultDto
            {
                AccessToken  = "this will be a JWT access token",
                RefreshToken = "this will be a JWT refresh token",
            };

            CurrentUserDtoResult = new CurrentUserDto
            {
                FirstName = "Simon",
                LastName  = "Sais",
                Email     = "*****@*****.**",
                Roles     = new List <string> {
                    "SuperAdmin", "Admin"
                },
                FullName = "Simon Sais",
                UserId   = Guid.Parse("77d8500b-dd97-4b6d-ce43-08d8aa3916b9")
            };
        }