Exemplo n.º 1
0
        /// <summary>
        /// Posts the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        public void Post(BrowseTo request)
        {
            var command = new BrowseRequest
            {
                Context  = request.Context,
                ItemId   = request.ItemId,
                ItemName = request.ItemName,
                ItemType = request.ItemType
            };

            var task = _sessionManager.SendBrowseCommand(request.Id, command, CancellationToken.None);

            Task.WaitAll(task);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Browses to.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>Task.</returns>
        /// <exception cref="ResourceNotFoundException"></exception>
        /// <exception cref="System.ArgumentException"></exception>
        /// <exception cref="System.InvalidOperationException">The requested session does not have an open web socket.</exception>
        private async Task BrowseTo(BrowseTo request)
        {
            var session = _sessionManager.Sessions.FirstOrDefault(i => i.Id == request.Id);

            if (session == null)
            {
                throw new ResourceNotFoundException(string.Format("Session {0} not found.", request.Id));
            }

            if (!session.SupportsRemoteControl)
            {
                throw new ArgumentException(string.Format("Session {0} does not support remote control.", session.Id));
            }

            var socket = session.WebSockets.OrderByDescending(i => i.LastActivityDate).FirstOrDefault(i => i.State == WebSocketState.Open);

            if (socket != null)
            {
                try
                {
                    await socket.SendAsync(new WebSocketMessage <BrowseTo>
                    {
                        MessageType = "Browse",
                        Data        = request
                    }, CancellationToken.None).ConfigureAwait(false);
                }
                catch (Exception ex)
                {
                    Logger.ErrorException("Error sending web socket message", ex);
                }
            }
            else
            {
                throw new InvalidOperationException("The requested session does not have an open web socket.");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Posts the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        public void Post(BrowseTo request)
        {
            var task = BrowseTo(request);

            Task.WaitAll(task);
        }