diff options
Diffstat (limited to 'MediaBrowser.WebDashboard/Api/DashboardService.cs')
| -rw-r--r-- | MediaBrowser.WebDashboard/Api/DashboardService.cs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs index 136a9170e..86e4c10ea 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 }; } |
