public async Task CreateAccount(ICreateAccountParameters createAccountParameters)
        {
            var paramsValidationResult = _accountActions.CheckAccountCreateParameters(createAccountParameters);

            if (paramsValidationResult.FaultingParameter != WhichParameter.None)
            {
                _accountDialogDisplayActions.ShowCreateParameterValidationError(paramsValidationResult);
                return;
            }

            var checkNameOperation = _networkOperationFactory.CreateSafeBlockingOperation(
                async() => await _accountActions.CheckAccountNameWithServer(createAccountParameters.AccountName),
                SetInitialStateAndShowError,
                SetInitialStateAndShowError);

            if (!await checkNameOperation.Invoke())
            {
                return;
            }

            var nameResult = checkNameOperation.Result;

            if (nameResult != AccountReply.Continue)
            {
                _accountDialogDisplayActions.ShowCreateAccountServerError(nameResult);
                return;
            }

            var result = await _accountDialogDisplayActions.ShowCreatePendingDialog();

            if (result == XNADialogResult.Cancel)
            {
                return;
            }

            var createAccountOperation = _networkOperationFactory.CreateSafeBlockingOperation(
                async() => await _accountActions.CreateAccount(createAccountParameters),
                SetInitialStateAndShowError,
                SetInitialStateAndShowError);

            if (!await createAccountOperation.Invoke())
            {
                return;
            }

            var accountResult = createAccountOperation.Result;

            if (accountResult != AccountReply.Created)
            {
                _accountDialogDisplayActions.ShowCreateAccountServerError(accountResult);
                return;
            }

            _gameStateActions.ChangeToState(GameStates.Initial);
            _accountDialogDisplayActions.ShowSuccessMessage();
        }