From 11941a4db29f62e80d64a8b2e207aecd02e8efe5 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 30 May 2013 23:38:46 -0400 Subject: more remote control --- .../WebSocket/SessionInfoWebSocketListener.cs | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 MediaBrowser.Api/WebSocket/SessionInfoWebSocketListener.cs (limited to 'MediaBrowser.Api/WebSocket/SessionInfoWebSocketListener.cs') diff --git a/MediaBrowser.Api/WebSocket/SessionInfoWebSocketListener.cs b/MediaBrowser.Api/WebSocket/SessionInfoWebSocketListener.cs new file mode 100644 index 000000000..f010ac375 --- /dev/null +++ b/MediaBrowser.Api/WebSocket/SessionInfoWebSocketListener.cs @@ -0,0 +1,52 @@ +using MediaBrowser.Common.Net; +using MediaBrowser.Controller.Dto; +using MediaBrowser.Controller.Session; +using MediaBrowser.Model.Logging; +using MediaBrowser.Model.Session; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace MediaBrowser.Api.WebSocket +{ + /// + /// Class SessionInfoWebSocketListener + /// + class SessionInfoWebSocketListener : BasePeriodicWebSocketListener, object> + { + /// + /// Gets the name. + /// + /// The name. + protected override string Name + { + get { return "Sessions"; } + } + + /// + /// The _kernel + /// + private readonly ISessionManager _sessionManager; + + /// + /// Initializes a new instance of the class. + /// + /// The logger. + /// The session manager. + public SessionInfoWebSocketListener(ILogger logger, ISessionManager sessionManager) + : base(logger) + { + _sessionManager = sessionManager; + } + + /// + /// Gets the data to send. + /// + /// The state. + /// Task{SystemInfo}. + protected override Task> GetDataToSend(object state) + { + return Task.FromResult(_sessionManager.Sessions.Select(SessionInfoDtoBuilder.GetSessionInfoDto)); + } + } +} -- cgit v1.2.3