diff options
Diffstat (limited to 'MediaBrowser.Api/SessionsService.cs')
| -rw-r--r-- | MediaBrowser.Api/SessionsService.cs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/MediaBrowser.Api/SessionsService.cs b/MediaBrowser.Api/SessionsService.cs new file mode 100644 index 000000000..03a352307 --- /dev/null +++ b/MediaBrowser.Api/SessionsService.cs @@ -0,0 +1,54 @@ +using MediaBrowser.Controller.Session; +using MediaBrowser.Model.Session; +using ServiceStack.ServiceHost; +using System.Collections.Generic; +using System.Linq; + +namespace MediaBrowser.Api +{ + /// <summary> + /// Class GetSessions + /// </summary> + [Route("/Sessions", "GET")] + [Api(("Gets a list of sessions"))] + public class GetSessions : IReturn<List<SessionInfo>> + { + /// <summary> + /// Gets or sets a value indicating whether this instance is recent. + /// </summary> + /// <value><c>true</c> if this instance is recent; otherwise, <c>false</c>.</value> + public bool IsRecent { get; set; } + } + + /// <summary> + /// Class SessionsService + /// </summary> + public class SessionsService : BaseApiService + { + /// <summary> + /// The _session manager + /// </summary> + private readonly ISessionManager _sessionManager; + + /// <summary> + /// Initializes a new instance of the <see cref="SessionsService"/> class. + /// </summary> + /// <param name="sessionManager">The session manager.</param> + public SessionsService(ISessionManager sessionManager) + { + _sessionManager = sessionManager; + } + + /// <summary> + /// Gets the specified request. + /// </summary> + /// <param name="request">The request.</param> + /// <returns>System.Object.</returns> + public object Get(GetSessions request) + { + var result = request.IsRecent ? _sessionManager.RecentConnections : _sessionManager.AllConnections; + + return ToOptimizedResult(result.ToList()); + } + } +} |
