private async Task <bool> TryConnectionAsync(string uri)
        {
            var mediaContainer = await _connectionHelper.MakeRequestAsync <MediaContainer>(Method.Get, uri, "/",
                                                                                           Username, Password);

            if (mediaContainer == null)
            {
                return(false);
            }

            if (MediaContainer == null)
            {
                MediaContainer = mediaContainer;
                await RefreshSessionAsync();
            }
            else
            {
                if (MediaContainer.UpdateFrom(mediaContainer))
                {
                    RaisePropertyChanged(() => MediaContainer);
                }

                await RefreshSessionAsync();
            }

            return(true);
        }
Exemplo n.º 2
0
        public async Task ConnectAsync(string username, string password)
        {
            if (!IsConnected || _username != username || _password != password)
            {
                lock (_userSyncObj)
                {
                    User      = null;
                    _username = username;
                    _password = password;
                }

                try
                {
                    var user = await _connectionHelper.MakeRequestAsync <PlexUser>(Method.Post,
                                                                                   PlexResources.MyPlexBaseUrl, PlexResources.MyPlexSignIn, _username, _password);

                    lock (_userSyncObj)
                        User = user;
                }
                catch (Exception ex)
                {
                    throw new NotConnectedToPlexException(ex);
                }
            }

            await RefreshContainerAsync();
        }