private void onValidationFailed(IValidateNewAccountResult result)
        {
            loginService.OnValidationSuccess -= onValidationSuccess;
            loginService.OnValidationFailed  -= onValidationFailed;
            HasError = true;
            string text = string.Empty;

            if (result.Errors != null)
            {
                foreach (IValidateNewAccountError error in result.Errors)
                {
                    object obj = text;
                    text = string.Concat(obj, "\t[", error, "] ");
                    if (error is IValidateNewAccountNothingToValidateError)
                    {
                        i18nErrorMessage = Service.Get <Localizer>().GetTokenTranslationFormatted("Account.Create.Validation.Empty", "Account.Create.Validation.PasswrodField");
                    }
                    else if (error is IValidateNewAccountPassswordMissingCharactersError)
                    {
                        i18nErrorMessage = "Account.Create.Validation.PasswordComplexity";
                    }
                    else if (error is IValidateNewAccountPasswordCommonError)
                    {
                        i18nErrorMessage = "Acount.Create.Validate.TooCommon";
                    }
                    else if (error is IValidateNewAccountPasswordPhoneError)
                    {
                        i18nErrorMessage = "Account.Create.Validation.PasswordPhoneNumber";
                    }
                    else if (error is IValidateNewAccountPasswordSizeError)
                    {
                        i18nErrorMessage = "Account.Create.Validation.PasswordLength";
                    }
                    else if (error is IValidateNewAccountRateLimitedError)
                    {
                        string type   = "";
                        string format = "Account.General.Error.RateLimited";
                        Service.Get <EventDispatcher>().DispatchEvent(new ApplicationService.Error(type, format));
                    }
                    text += i18nErrorMessage;
                    text += "\n";
                }
            }
            if (string.IsNullOrEmpty(text))
            {
                i18nErrorMessage = "Account.Create.Validation.UnknownError";
                text            += i18nErrorMessage;
                text            += "\n";
            }
            isBaseValidationDone = true;
        }
 private static void Send(AbstractLogger logger, IGuestControllerClient guestControllerClient, ValidateRequest request, Action <IValidateNewAccountResult> callback)
 {
     try
     {
         guestControllerClient.Validate(request, delegate(GuestControllerResult <ValidateResponse> r)
         {
             if (!r.Success)
             {
                 callback(new ValidateNewAccountResult(success: false, null));
             }
             else
             {
                 ValidateResponse response = r.Response;
                 if (response.error == null)
                 {
                     callback(new ValidateNewAccountResult(success: true, null));
                 }
                 else
                 {
                     IValidateNewAccountResult validateResult = GuestControllerErrorParser.GetValidateResult(response.error);
                     if (validateResult != null)
                     {
                         callback(validateResult);
                     }
                     else
                     {
                         IEnumerable <IValidateNewAccountError> validationErrors = GuestControllerErrorParser.GetValidationErrors(response.error);
                         callback(new ValidateNewAccountResult(success: false, validationErrors));
                     }
                 }
             }
         });
     }
     catch (Exception arg)
     {
         logger.Critical("Unhandled exception: " + arg);
         callback(new ValidateNewAccountResult(success: false, null));
     }
 }
 private void onSuggestionValidationFailed(IValidateNewAccountResult result)
 {
     loginService.OnValidationSuccess -= onSuggestionValidationSuccess;
     loginService.OnValidationFailed  -= onSuggestionValidationFailed;
     CoroutineRunner.Start(getNextDisplayNameSuggestion(), this, "SuggestedNameValidation");
 }
        private void onValidationFailed(IValidateNewAccountResult result)
        {
            loginService.OnValidationSuccess -= onValidationSuccess;
            loginService.OnValidationFailed  -= onValidationFailed;
            HasError = true;
            string text = string.Empty;

            if (result.Errors != null)
            {
                foreach (IValidateNewAccountError error in result.Errors)
                {
                    object obj = text;
                    text = string.Concat(obj, "\t[", error, "] ");
                    if (error is IValidateNewAccountAccountInUseError)
                    {
                        i18nErrorMessage = "Acount.Create.Validation.AlreadyUsed";
                        displayNameStub  = Regex.Replace(inputString, "[0-9]+$", string.Empty);
                        if (EnableNameSuggestions && numSuggestionRounds < MaxSuggestionRounds && displayNameStub.Length < MaxSuggestedUsernameLength)
                        {
                            numSuggestionRounds++;
                            isNameSuggestionValidationDone = false;
                            currentNumber = 0;
                            int.TryParse(Regex.Replace(inputString, displayNameStub, string.Empty), out currentNumber);
                            suggestedNames = new List <string>();
                            CoroutineRunner.Start(getDisplayNameSuggestions(), this, "SuggestedNameValidation");
                        }
                        else
                        {
                            isNameSuggestionValidationDone = true;
                        }
                    }
                    else if (error is IValidateNewAccountMultipleAccountsError)
                    {
                        isNameSuggestionValidationDone = true;
                        Service.Get <MixLoginCreateService>().MultipleAccountsResolutionSend(inputString);
                        Service.Get <PromptManager>().ShowError("Account.Login.Error.MultipleAccountsSameEmail", "Account.Login.Error.ResolveInstructionsEmailSent");
                        i18nErrorMessage = "Account.Login.Error.MultipleAccountsSameEmail";
                    }
                    else if (error is IValidateNewAccountNotRegisteredTransactorError)
                    {
                        isNameSuggestionValidationDone = true;
                        Service.Get <MixLoginCreateService>().NonRegisteredTransactorUpgradeSend(inputString);
                        Service.Get <PromptManager>().ShowError("Account.Login.Error.NonRegisteredTransactor", "Account.Login.Error.ResolveInstructionsEmailSent");
                        i18nErrorMessage = "Account.Login.Error.NonRegisteredTransactor";
                    }
                    else if (error is IValidateNewAccountNothingToValidateError)
                    {
                        isNameSuggestionValidationDone = true;
                        i18nErrorMessage = Service.Get <Localizer>().GetTokenTranslationFormatted("Account.Create.Validation.Empty", "Account.Create.Validation.UsernameField");
                    }
                    else if (error is IValidateNewAccountUsernameError)
                    {
                        isNameSuggestionValidationDone = true;
                        i18nErrorMessage = "Account.Create.Validation.InvalidUsername";
                    }
                    else if (error is IValidateNewAccountRateLimitedError)
                    {
                        isNameSuggestionValidationDone = true;
                        string type   = "";
                        string format = "Account.General.Error.RateLimited";
                        Service.Get <EventDispatcher>().DispatchEvent(new ApplicationService.Error(type, format));
                    }
                    text += i18nErrorMessage;
                    text += "\n";
                }
            }
            if (string.IsNullOrEmpty(text))
            {
                isNameSuggestionValidationDone = true;
                i18nErrorMessage = "Account.Create.Validation.UnknownError";
                text            += i18nErrorMessage;
                text            += "\n";
            }
            isBaseValidationDone = true;
        }