From eb72c2db513f5306eecccb94f0f1cd5296a7d7db Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 2 Oct 2013 21:22:50 -0400 Subject: updated nuget --- .../Session/SessionManager.cs | 54 ++++++++++------------ 1 file changed, 24 insertions(+), 30 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Session/SessionManager.cs') diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs index efb8dbe10..ac69b0dc5 100644 --- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs +++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs @@ -78,12 +78,6 @@ namespace MediaBrowser.Server.Implementations.Session _userRepository = userRepository; } - private List _remoteControllers; - public void AddParts(IEnumerable remoteControllers) - { - _remoteControllers = remoteControllers.ToList(); - } - /// /// Gets all connections. /// @@ -433,18 +427,8 @@ namespace MediaBrowser.Server.Implementations.Session { throw new ArgumentException(string.Format("Session {0} does not support remote control.", session.Id)); } - - return session; - } - /// - /// Gets the controllers. - /// - /// The session. - /// IEnumerable{ISessionRemoteController}. - private IEnumerable GetControllers(SessionInfo session) - { - return _remoteControllers.Where(i => i.Supports(session)); + return session; } /// @@ -458,9 +442,7 @@ namespace MediaBrowser.Server.Implementations.Session { var session = GetSessionForRemoteControl(sessionId); - var tasks = GetControllers(session).Select(i => i.SendSystemCommand(session, command, cancellationToken)); - - return Task.WhenAll(tasks); + return session.SessionController.SendSystemCommand(command, cancellationToken); } /// @@ -474,9 +456,7 @@ namespace MediaBrowser.Server.Implementations.Session { var session = GetSessionForRemoteControl(sessionId); - var tasks = GetControllers(session).Select(i => i.SendMessageCommand(session, command, cancellationToken)); - - return Task.WhenAll(tasks); + return session.SessionController.SendMessageCommand(command, cancellationToken); } /// @@ -490,9 +470,7 @@ namespace MediaBrowser.Server.Implementations.Session { var session = GetSessionForRemoteControl(sessionId); - var tasks = GetControllers(session).Select(i => i.SendPlayCommand(session, command, cancellationToken)); - - return Task.WhenAll(tasks); + return session.SessionController.SendPlayCommand(command, cancellationToken); } /// @@ -506,9 +484,7 @@ namespace MediaBrowser.Server.Implementations.Session { var session = GetSessionForRemoteControl(sessionId); - var tasks = GetControllers(session).Select(i => i.SendBrowseCommand(session, command, cancellationToken)); - - return Task.WhenAll(tasks); + return session.SessionController.SendBrowseCommand(command, cancellationToken); } /// @@ -522,7 +498,25 @@ namespace MediaBrowser.Server.Implementations.Session { var session = GetSessionForRemoteControl(sessionId); - var tasks = GetControllers(session).Select(i => i.SendPlaystateCommand(session, command, cancellationToken)); + return session.SessionController.SendPlaystateCommand(command, cancellationToken); + } + + public Task SendRestartRequiredMessage(CancellationToken cancellationToken) + { + var sessions = Sessions.Where(i => i.IsActive && i.SessionController != null).ToList(); + + var tasks = sessions.Select(session => Task.Run(async () => + { + try + { + await session.SessionController.SendRestartRequiredMessage(cancellationToken).ConfigureAwait(false); + } + catch (Exception ex) + { + _logger.ErrorException("Error in SendRestartRequiredMessage.", ex); + } + + })); return Task.WhenAll(tasks); } -- cgit v1.2.3