aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBond_009 <Bond.009@outlook.com>2019-03-27 16:07:08 +0100
committerBond_009 <Bond.009@outlook.com>2019-03-27 16:07:08 +0100
commit8ed5d154b746c086ccb6b1163772ea4d05067abd (patch)
tree3887909bc54e7169596b3a295709d255810aac99
parent6566c9136057f7b272b0d35501ed85034034d11e (diff)
Remove duplicate code
-rw-r--r--Emby.Server.Implementations/Session/SessionManager.cs62
1 files changed, 23 insertions, 39 deletions
diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs
index dc23551db..b7974dd7e 100644
--- a/Emby.Server.Implementations/Session/SessionManager.cs
+++ b/Emby.Server.Implementations/Session/SessionManager.cs
@@ -1037,6 +1037,25 @@ namespace Emby.Server.Implementations.Session
}
}
+ private static Task SendMessageToSessions<T>(IEnumerable<SessionInfo> sessions, string name, T data, CancellationToken cancellationToken)
+ {
+ IEnumerable<Task> GetTasks()
+ {
+ foreach (var session in sessions)
+ {
+ var controllers = session.SessionControllers;
+ var messageId = Guid.NewGuid().ToString("N");
+
+ foreach (var controller in controllers)
+ {
+ yield return controller.SendMessage(name, messageId, data, controllers, cancellationToken);
+ }
+ }
+ }
+
+ return Task.WhenAll(GetTasks());
+ }
+
public async Task SendPlayCommand(string controllingSessionId, string sessionId, PlayRequest command, CancellationToken cancellationToken)
{
CheckDisposed();
@@ -1832,15 +1851,7 @@ namespace Emby.Server.Implementations.Session
var data = dataFn();
- IEnumerable<Task> GetTasks()
- {
- foreach (var session in sessions)
- {
- yield return SendMessageToSession(session, name, data, cancellationToken);
- }
- }
-
- return Task.WhenAll(GetTasks());
+ return SendMessageToSessions(sessions, name, data, cancellationToken);
}
public Task SendMessageToUserSessions<T>(List<Guid> userIds, string name, T data, CancellationToken cancellationToken)
@@ -1848,16 +1859,7 @@ namespace Emby.Server.Implementations.Session
CheckDisposed();
var sessions = Sessions.Where(i => userIds.Any(i.ContainsUser));
-
- IEnumerable<Task> GetTasks()
- {
- foreach (var session in sessions)
- {
- yield return SendMessageToSession(session, name, data, cancellationToken);
- }
- }
-
- return Task.WhenAll(GetTasks());
+ return SendMessageToSessions(sessions, name, data, cancellationToken);
}
public Task SendMessageToUserDeviceSessions<T>(string deviceId, string name, T data, CancellationToken cancellationToken)
@@ -1865,16 +1867,7 @@ namespace Emby.Server.Implementations.Session
CheckDisposed();
var sessions = Sessions.Where(i => string.Equals(i.DeviceId, deviceId, StringComparison.OrdinalIgnoreCase));
-
- IEnumerable<Task> GetTasks()
- {
- foreach (var session in sessions)
- {
- yield return SendMessageToSession(session, name, data, cancellationToken);
- }
- }
-
- return Task.WhenAll(GetTasks());
+ return SendMessageToSessions(sessions, name, data, cancellationToken);
}
public Task SendMessageToUserDeviceAndAdminSessions<T>(string deviceId, string name, T data, CancellationToken cancellationToken)
@@ -1883,16 +1876,7 @@ namespace Emby.Server.Implementations.Session
var sessions = Sessions
.Where(i => string.Equals(i.DeviceId, deviceId, StringComparison.OrdinalIgnoreCase) || IsAdminSession(i));
-
- IEnumerable<Task> GetTasks()
- {
- foreach (var session in sessions)
- {
- yield return SendMessageToSession(session, name, data, cancellationToken);
- }
- }
-
- return Task.WhenAll(GetTasks());
+ return SendMessageToSessions(sessions, name, data, cancellationToken);
}
private bool IsAdminSession(SessionInfo s)