private async void OnConnect() { Message = Strings.Connecting; var success = await _remoteService.ConnectAsync(SelectedRemoteSystem); if (success) { Message = Strings.RetrievingUser; await Task.Run(async() => { var userId = await _remoteService.CommandAsync <string>(RemoteCommands.GetUser); if (Guid.TryParse(userId, out Guid userGuid) && userGuid != Guid.Empty) { var user = await _miriotService.GetUser(userGuid); RunOnUiThread(() => { if (user?.Id != Guid.Empty) { Message = string.Empty; _navigationService.NavigateTo(PageKeys.Profile, new MiriotParameter() { User = user, Id = SelectedRemoteSystem.Id }); } else { Message = "Unregistered user"; } }); } else { RunOnUiThread(() => { Message = Strings.RetrievingUserFailed; }); } }); } else { Message = Strings.ConnectionFailed; } }