blob: e49b526241f77e4180c277fed1483f66f0742ea6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
using System.Collections.Generic;
using System.Linq;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Net;
using System;
namespace MediaBrowser.Controller.Session
{
/// <summary>
/// Class SessionInfo
/// </summary>
public class SessionInfo
{
public SessionInfo()
{
WebSockets = new List<IWebSocketConnection>();
}
/// <summary>
/// Gets or sets the id.
/// </summary>
/// <value>The id.</value>
public Guid Id { get; set; }
/// <summary>
/// Gets or sets the user id.
/// </summary>
/// <value>The user id.</value>
public User User { get; set; }
/// <summary>
/// Gets or sets the type of the client.
/// </summary>
/// <value>The type of the client.</value>
public string Client { get; set; }
/// <summary>
/// Gets or sets the last activity date.
/// </summary>
/// <value>The last activity date.</value>
public DateTime LastActivityDate { get; set; }
/// <summary>
/// Gets or sets the name of the device.
/// </summary>
/// <value>The name of the device.</value>
public string DeviceName { get; set; }
/// <summary>
/// Gets or sets the now viewing context.
/// </summary>
/// <value>The now viewing context.</value>
public string NowViewingContext { get; set; }
/// <summary>
/// Gets or sets the type of the now viewing item.
/// </summary>
/// <value>The type of the now viewing item.</value>
public string NowViewingItemType { get; set; }
/// <summary>
/// Gets or sets the now viewing item identifier.
/// </summary>
/// <value>The now viewing item identifier.</value>
public string NowViewingItemId { get; set; }
/// <summary>
/// Gets or sets the name of the now viewing item.
/// </summary>
/// <value>The name of the now viewing item.</value>
public string NowViewingItemName { get; set; }
/// <summary>
/// Gets or sets the now playing item.
/// </summary>
/// <value>The now playing item.</value>
public BaseItem NowPlayingItem { get; set; }
/// <summary>
/// Gets or sets the now playing position ticks.
/// </summary>
/// <value>The now playing position ticks.</value>
public long? NowPlayingPositionTicks { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance is paused.
/// </summary>
/// <value><c>true</c> if this instance is paused; otherwise, <c>false</c>.</value>
public bool? IsPaused { get; set; }
/// <summary>
/// Gets or sets the device id.
/// </summary>
/// <value>The device id.</value>
public string DeviceId { get; set; }
/// <summary>
/// Gets or sets the web socket.
/// </summary>
/// <value>The web socket.</value>
public List<IWebSocketConnection> WebSockets { get; set; }
/// <summary>
/// Gets a value indicating whether this instance is active.
/// </summary>
/// <value><c>true</c> if this instance is active; otherwise, <c>false</c>.</value>
public bool IsActive
{
get
{
if (WebSockets.Count > 0)
{
return WebSockets.Any(i => i.State == WebSocketState.Open);
}
return (DateTime.UtcNow - LastActivityDate).TotalMinutes <= 5;
}
}
/// <summary>
/// Gets a value indicating whether [supports remote control].
/// </summary>
/// <value><c>true</c> if [supports remote control]; otherwise, <c>false</c>.</value>
public bool SupportsRemoteControl
{
get
{
return WebSockets.Any(i => i.State == WebSocketState.Open);
}
}
}
}
|