public async Task <LoginReply> LoginToServer(ILoginParameters parameters) { var packet = new PacketBuilder(PacketFamily.Login, PacketAction.Request) .AddBreakString(parameters.Username) .AddBreakString(parameters.Password) .Build(); var response = await _packetSendService.SendEncodedPacketAndWaitAsync(packet); if (IsInvalidResponse(response)) { throw new EmptyPacketReceivedException(); } var data = _loginPacketTranslator.TranslatePacket(response); _characterSelectorRepository.Characters = data.Characters; if (data.Response == LoginReply.Ok) { _playerInfoRepository.LoggedInAccountName = parameters.Username; _playerInfoRepository.PlayerPassword = parameters.Password; } return(data.Response); }
public async Task LoginToAccount(ILoginParameters loginParameters) { if (!_loginActions.LoginParametersAreValid(loginParameters)) { return; } var loginToServerOperation = _networkOperationFactory.CreateSafeBlockingOperation( async() => await _loginActions.LoginToServer(loginParameters), SetInitialStateAndShowError, SetInitialStateAndShowError); if (!await loginToServerOperation.Invoke()) { return; } var reply = loginToServerOperation.Result; if (reply == LoginReply.Ok) { _gameStateActions.ChangeToState(GameStates.LoggedIn); } else { _errorDisplayAction.ShowLoginError(reply); } }
public bool LoginParametersAreValid(ILoginParameters parameters) { return(!string.IsNullOrEmpty(parameters.Username) && !string.IsNullOrEmpty(parameters.Password)); }