diff options
Diffstat (limited to 'MediaBrowser.WebDashboard')
| -rw-r--r-- | MediaBrowser.WebDashboard/Api/DashboardInfoWebSocketListener.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.WebDashboard/Api/DashboardService.cs | 9 |
2 files changed, 7 insertions, 4 deletions
diff --git a/MediaBrowser.WebDashboard/Api/DashboardInfoWebSocketListener.cs b/MediaBrowser.WebDashboard/Api/DashboardInfoWebSocketListener.cs index cdcdb49dc4..38d5d32a80 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardInfoWebSocketListener.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardInfoWebSocketListener.cs @@ -57,7 +57,7 @@ namespace MediaBrowser.WebDashboard.Api /// <returns>Task{IEnumerable{TaskInfo}}.</returns> protected override Task<DashboardInfo> GetDataToSend(object state) { - return Task.FromResult(DashboardService.GetDashboardInfo(_appHost, Logger, _taskManager, _userManager)); + return DashboardService.GetDashboardInfo(_appHost, Logger, _taskManager, _userManager); } } } diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs index 136a9170ea..86e4c10ea7 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardService.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs @@ -110,7 +110,7 @@ namespace MediaBrowser.WebDashboard.Api /// <returns>System.Object.</returns> public object Get(GetDashboardInfo request) { - return GetDashboardInfo(_appHost, Logger, _taskManager, _userManager); + return GetDashboardInfo(_appHost, Logger, _taskManager, _userManager).Result; } /// <summary> @@ -120,12 +120,15 @@ namespace MediaBrowser.WebDashboard.Api /// <param name="taskManager">The task manager.</param> /// <param name="userManager">The user manager.</param> /// <returns>DashboardInfo.</returns> - public static DashboardInfo GetDashboardInfo(IServerApplicationHost appHost, ILogger logger, ITaskManager taskManager, IUserManager userManager) + public static async Task<DashboardInfo> GetDashboardInfo(IServerApplicationHost appHost, ILogger logger, ITaskManager taskManager, IUserManager userManager) { var connections = userManager.ConnectedUsers.ToArray(); var dtoBuilder = new DtoBuilder(logger); + var tasks = userManager.Users.Where(u => connections.Any(c => c.UserId == u.Id)).Select(dtoBuilder.GetUserDto); + var users = await Task.WhenAll(tasks).ConfigureAwait(false); + return new DashboardInfo { SystemInfo = appHost.GetSystemInfo(), @@ -138,7 +141,7 @@ namespace MediaBrowser.WebDashboard.Api ActiveConnections = connections, - Users = userManager.Users.Where(u => connections.Any(c => c.UserId == u.Id)).Select(dtoBuilder.GetDtoUser).ToArray() + Users = users }; } |
