예제 #1
0
        public SignUpParam InputValidate(string userId, string password)
        {
            SignUpParam signUpParam = new SignUpParam();

            //入力されたuserIdが空かどうかチェック
            if (string.IsNullOrEmpty(userId))
            {
                //存在していた場合POSTを失敗で終了
                signUpParam.HasError    = true;
                signUpParam.BlankUserId = true;
                return(signUpParam);
            }

            //入力されたpasswordが空かどうかチェック
            if (string.IsNullOrEmpty(password))
            {
                //存在していた場合POSTを失敗で終了
                signUpParam.HasError      = true;
                signUpParam.BlankPassword = true;
                return(signUpParam);
            }

            //入力されたパスワードが指定文字数を満たしているかどうかチェック
            if (password.Length < 6)

            {
                //存在していた場合POSTを失敗で終了
                signUpParam.HasError      = true;
                signUpParam.ShortPassword = true;
                return(signUpParam);
            }

            //入力されたuserIdが半角英数字のみで構成されているかチェック
            if (!_checkString.isAlphaNumericPlusAlphaOnly(userId))
            {
                signUpParam.HasError          = true;
                signUpParam.UnSpecifiedUserId = true;
                return(signUpParam);
            }

            //passwordポリシーに適しているかどうかチェック
            if (!_checkString.isAlphaNumericPlusAlphaOnly(password))
            {
                signUpParam.HasError            = true;
                signUpParam.UnSpecifiedPassword = true;
                return(signUpParam);
            }

            signUpParam.IsSuccessed = true;

            return(signUpParam);
        }
예제 #2
0
        public SignUpPageViewModel(INavigationService navigationService) : base(navigationService)
        {
            _navigationService = navigationService;
            _restService       = new RestService();
            _checkString       = new CheckString();

            _signUpParam = new SignUpParam();

            _signUpValidation = new SignUpValidation(_checkString);


            SignUpCommand = new DelegateCommand(async() =>
            {
                SignUpLoading = true;

                //新規登録の入力系バリデーション
                SignUpParam = _signUpValidation.InputValidate(SignUpUserId, SignUpPassword);
                if (SignUpParam.HasError == true)
                {
                    SignUpLoading = false; return;
                }

                //新規登録APIのコール
                SignUpParam = await _restService.SignUpUserDataAsync(UserConstants.OpenUserEndPoint, SignUpUserId, SignUpPassword);

                //新規登録にエラーが無く追加が実行されていればLoginPageに遷移する
                if (SignUpParam.HasError == false)
                {
                    SignUpLoading = false;
                    await _navigationService.NavigateAsync("/NavigationPage/LoginPage");
                }
                else
                {
                    SignUpLoading = false;
                }
            });

            GoBackCommand = new DelegateCommand(async() =>
            {
                _ = await _navigationService.GoBackAsync();
            });
        }
 public IHttpActionResult Register([FromBody] SignUpParam param)
 {
     try
     {
         if (log.IsDebugEnabled)
         {
             log.Debug("Register Call Recevied, parameters:" + param);
         }
         return
             (Ok(
                  _registrationApplicationService.CreateAccount(new SignupUserCommand(param.Email, param.Username,
                                                                                      param.Password, param.Country, param.TimeZone, param.PgpPublicKey))));
     }
     catch (InvalidOperationException exception)
     {
         if (log.IsErrorEnabled)
         {
             log.Error("Register Call Exception ", exception);
         }
         return(BadRequest(exception.Message));
     }
     catch (InvalidCredentialException exception)
     {
         if (log.IsErrorEnabled)
         {
             log.Error("Register Call Exception ", exception);
         }
         return(BadRequest(exception.Message));
     }
     catch (Exception exception)
     {
         if (log.IsErrorEnabled)
         {
             log.Error("Register Call Exception ", exception);
         }
         return(InternalServerError());
     }
 }
예제 #4
0
        /// <summary>
        /// /ユーザー情報を新規登録するAPIコール
        /// </summary>
        /// <param name="uri">コールするURL</param>
        /// <param name="userId">登録するユーザーID</param>
        /// <param name="password">登録するパスワード</param>
        /// <returns>SignUpParam</returns>
        public async Task <SignUpParam> SignUpUserDataAsync(string uri, string userId, string password)
        {
            var user = new UserData(userId, password);
            var json = JsonConvert.SerializeObject(user);

            var signUpParam = new SignUpParam();

            try
            {
                var content = new StringContent(json, Encoding.UTF8, "application/json");

                //テーブル内にuserIdが存在するかどうかチェック
                if (await CheckUserDataAsync(uri, userId))

                {
                    //存在していた場合POSTを失敗で終了
                    signUpParam.HasError   = true;
                    signUpParam.UserExists = true;
                    return(signUpParam);
                }

                var response = await _client.PostAsync(uri, content);

                if (response.IsSuccessStatusCode)
                {
                    string responseContent = await response.Content.ReadAsStringAsync();

                    Console.WriteLine(responseContent);
                    signUpParam.IsSuccessed = response.IsSuccessStatusCode;
                    return(signUpParam);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("\tERROR {0}", ex.Message);
            }
            return(signUpParam);
        }
예제 #5
0
        public async Task <ApiRequestResult> SignUp([FromBody] SignUpParam param)
        {
            var userId      = Guid.NewGuid();
            var asampleUser = new ASampleUser
            {
                Id          = userId.ToString(),
                UserName    = param.UserName,
                Email       = param.Email,
                PhoneNumber = param.PhoneNumber,
            };
            var hashedNewPassword = _userManager.PasswordHasher.HashPassword(asampleUser, param.Password);
            var user = new TUser
            {
                Id          = userId,
                UserName    = param.UserName,
                Email       = param.Email,
                PhoneNumber = param.PhoneNumber,
                Password    = hashedNewPassword,
                //OrgId = param.OrgId,
                //LoginName = param.LoginName,
            };
            await _userRepository.AddAsync(user);

            //var asampleUser = new ASampleUser
            //{
            //    UserName = param.UserName,
            //    Email = param.Email,
            //    PhoneNumber = param.PhoneNumber,
            //};
            var result = await _userManager.CreateAsync(asampleUser, param.Password);

            if (result.Succeeded)
            {
                return(ApiRequestResult.Success("注册成功"));
            }
            return(ApiRequestResult.Error(result.Errors.FirstOrDefault().Description));
        }