Пример #1
0
        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;
            }
        }