diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-12 18:49:45 -0400 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-12 18:49:45 -0400 |
| commit | 0cc0fbbe4300e58ec4faae9ba9e94787382e1a79 (patch) | |
| tree | 292c8d97cc00aea0665490f896b6f507a134826a | |
| parent | 6b327581c690b5c1c6241ab10adce8d56e6fdb68 (diff) | |
#22 - Need to strip html tags from overviews
17 files changed, 82 insertions, 64 deletions
diff --git a/MediaBrowser.Api/Library/LibraryService.cs b/MediaBrowser.Api/Library/LibraryService.cs index f0633c4b6..9d1df4ccb 100644 --- a/MediaBrowser.Api/Library/LibraryService.cs +++ b/MediaBrowser.Api/Library/LibraryService.cs @@ -134,7 +134,7 @@ namespace MediaBrowser.Api.Library // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = new DtoBuilder(Logger).GetBaseItemDto(item, fields.ToList(), _libraryManager).Result; + var result = new DtoBuilder(Logger, _libraryManager).GetBaseItemDto(item, fields.ToList()).Result; return ToOptimizedResult(result); } @@ -151,7 +151,7 @@ namespace MediaBrowser.Api.Library // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = new DtoBuilder(Logger).GetBaseItemDto(item, fields.ToList(), _libraryManager).Result; + var result = new DtoBuilder(Logger, _libraryManager).GetBaseItemDto(item, fields.ToList()).Result; return ToOptimizedResult(result); } @@ -168,7 +168,7 @@ namespace MediaBrowser.Api.Library // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = new DtoBuilder(Logger).GetBaseItemDto(item, fields.ToList(), _libraryManager).Result; + var result = new DtoBuilder(Logger, _libraryManager).GetBaseItemDto(item, fields.ToList()).Result; return ToOptimizedResult(result); } @@ -185,7 +185,7 @@ namespace MediaBrowser.Api.Library // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)); - var result = new DtoBuilder(Logger).GetBaseItemDto(item, fields.ToList(), _libraryManager).Result; + var result = new DtoBuilder(Logger, _libraryManager).GetBaseItemDto(item, fields.ToList()).Result; return ToOptimizedResult(result); } diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs index 5fb2097cd..0a013e90a 100644 --- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs +++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs @@ -150,7 +150,7 @@ namespace MediaBrowser.Api.UserLibrary return null; } - var dto = await new DtoBuilder(Logger).GetBaseItemDto(item, user, fields, LibraryManager).ConfigureAwait(false); + var dto = await new DtoBuilder(Logger, LibraryManager).GetBaseItemDto(item, user, fields).ConfigureAwait(false); dto.ChildCount = stub.Item2(); diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs b/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs index ed1beab6f..c348bf5f5 100644 --- a/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs +++ b/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs @@ -52,7 +52,7 @@ namespace MediaBrowser.Api.UserLibrary /// Fields to return within the items, in addition to basic information /// </summary> /// <value>The fields.</value> - [ApiMember(Name = "Fields", Description = "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimeted. Options: AudioInfo, Chapters, DateCreated, DisplayMediaType, DisplayPreferences, Genres, ItemCounts, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, SeriesInfo, SortName, Studios, Taglines, TrailerUrls, UserData", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)] + [ApiMember(Name = "Fields", Description = "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimeted. Options: AudioInfo, Chapters, DateCreated, DisplayMediaType, DisplayPreferences, Genres, ItemCounts, IndexOptions, MediaStreams, Overview, OverviewHtml, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, SeriesInfo, SortName, Studios, Taglines, TrailerUrls, UserData", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)] public string Fields { get; set; } } } diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 13996be19..9ed627999 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -169,9 +169,9 @@ namespace MediaBrowser.Api.UserLibrary var fields = GetItemFields(request).ToList(); - var dtoBuilder = new DtoBuilder(Logger); + var dtoBuilder = new DtoBuilder(Logger, _libraryManager); - var returnItems = await Task.WhenAll(pagedItems.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields, _libraryManager))).ConfigureAwait(false); + var returnItems = await Task.WhenAll(pagedItems.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields))).ConfigureAwait(false); return new ItemsResult { diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index 88b7dc57c..9e2d54448 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -383,9 +383,9 @@ namespace MediaBrowser.Api.UserLibrary var movie = (Movie)item; - var dtoBuilder = new DtoBuilder(Logger); + var dtoBuilder = new DtoBuilder(Logger, _libraryManager); - var items = movie.SpecialFeatures.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields, _libraryManager)).AsParallel().Select(t => t.Result).ToList(); + var items = movie.SpecialFeatures.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields)).AsParallel().Select(t => t.Result).ToList(); return ToOptimizedResult(items); } @@ -404,9 +404,9 @@ namespace MediaBrowser.Api.UserLibrary // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); - var dtoBuilder = new DtoBuilder(Logger); + var dtoBuilder = new DtoBuilder(Logger, _libraryManager); - var items = item.LocalTrailers.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields, _libraryManager)).AsParallel().Select(t => t.Result).ToList(); + var items = item.LocalTrailers.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields)).AsParallel().Select(t => t.Result).ToList(); return ToOptimizedResult(items); } @@ -425,9 +425,9 @@ namespace MediaBrowser.Api.UserLibrary // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); - var dtoBuilder = new DtoBuilder(Logger); + var dtoBuilder = new DtoBuilder(Logger, _libraryManager); - var result = dtoBuilder.GetBaseItemDto(item, user, fields, _libraryManager).Result; + var result = dtoBuilder.GetBaseItemDto(item, user, fields).Result; return ToOptimizedResult(result); } @@ -441,9 +441,9 @@ namespace MediaBrowser.Api.UserLibrary // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); - var dtoBuilder = new DtoBuilder(Logger); + var dtoBuilder = new DtoBuilder(Logger, _libraryManager); - var result = dtoBuilder.GetBaseItemDto(item, user, fields, _libraryManager).Result; + var result = dtoBuilder.GetBaseItemDto(item, user, fields).Result; return ToOptimizedResult(result); } diff --git a/MediaBrowser.Api/UserService.cs b/MediaBrowser.Api/UserService.cs index b44c38b30..62958fe11 100644 --- a/MediaBrowser.Api/UserService.cs +++ b/MediaBrowser.Api/UserService.cs @@ -137,13 +137,14 @@ namespace MediaBrowser.Api /// The _user manager /// </summary> private readonly IUserManager _userManager; - + private readonly ILibraryManager _libraryManager; + /// <summary> /// Initializes a new instance of the <see cref="UserService" /> class. /// </summary> /// <param name="xmlSerializer">The XML serializer.</param> /// <exception cref="System.ArgumentNullException">xmlSerializer</exception> - public UserService(IXmlSerializer xmlSerializer, IUserManager userManager) + public UserService(IXmlSerializer xmlSerializer, IUserManager userManager, ILibraryManager libraryManager) : base() { if (xmlSerializer == null) @@ -153,6 +154,7 @@ namespace MediaBrowser.Api _xmlSerializer = xmlSerializer; _userManager = userManager; + _libraryManager = libraryManager; } /// <summary> @@ -162,7 +164,7 @@ namespace MediaBrowser.Api /// <returns>System.Object.</returns> public object Get(GetUsers request) { - var dtoBuilder = new DtoBuilder(Logger); + var dtoBuilder = new DtoBuilder(Logger, _libraryManager); var tasks = _userManager.Users.OrderBy(u => u.Name).Select(dtoBuilder.GetUserDto).ToArray(); @@ -185,7 +187,7 @@ namespace MediaBrowser.Api throw new ResourceNotFoundException("User not found"); } - var result = new DtoBuilder(Logger).GetUserDto(user).Result; + var result = new DtoBuilder(Logger, _libraryManager).GetUserDto(user).Result; return ToOptimizedResult(result); } @@ -298,8 +300,8 @@ namespace MediaBrowser.Api var newUser = _userManager.CreateUser(dtoUser.Name).Result; newUser.UpdateConfiguration(dtoUser.Configuration, _xmlSerializer); - - var result = new DtoBuilder(Logger).GetUserDto(newUser).Result; + + var result = new DtoBuilder(Logger, _libraryManager).GetUserDto(newUser).Result; return ToOptimizedResult(result); } diff --git a/MediaBrowser.Common/Extensions/BaseExtensions.cs b/MediaBrowser.Common/Extensions/BaseExtensions.cs index de9690140..f91ddfbd5 100644 --- a/MediaBrowser.Common/Extensions/BaseExtensions.cs +++ b/MediaBrowser.Common/Extensions/BaseExtensions.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; +using System.Text.RegularExpressions; namespace MediaBrowser.Common.Extensions { @@ -44,6 +45,18 @@ namespace MediaBrowser.Common.Extensions } /// <summary> + /// Strips the HTML. + /// </summary> + /// <param name="htmlString">The HTML string.</param> + /// <returns>System.String.</returns> + public static string StripHtml(this string htmlString) + { + // http://stackoverflow.com/questions/1349023/how-can-i-strip-html-from-text-in-net + const string pattern = @"<(.|\n)*?>"; + return Regex.Replace(htmlString, pattern, string.Empty); + } + + /// <summary> /// Shuffles an IEnumerable /// </summary> /// <typeparam name="T"></typeparam> diff --git a/MediaBrowser.Controller/Library/DtoBuilder.cs b/MediaBrowser.Controller/Library/DtoBuilder.cs index fcd3e68aa..22e260547 100644 --- a/MediaBrowser.Controller/Library/DtoBuilder.cs +++ b/MediaBrowser.Controller/Library/DtoBuilder.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Entities; +using MediaBrowser.Common.Extensions; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; @@ -6,12 +7,12 @@ using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; +using MediaBrowser.Model.Querying; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; -using MediaBrowser.Model.Querying; namespace MediaBrowser.Controller.Library { @@ -26,10 +27,12 @@ namespace MediaBrowser.Controller.Library const string IndexFolderDelimeter = "-index-"; private readonly ILogger _logger; + private readonly ILibraryManager _libraryManager; - public DtoBuilder(ILogger logger) + public DtoBuilder(ILogger logger, ILibraryManager libraryManager) { _logger = logger; + _libraryManager = libraryManager; } /// <summary> @@ -39,7 +42,7 @@ namespace MediaBrowser.Controller.Library /// <param name="fields">The fields.</param> /// <returns>Task{DtoBaseItem}.</returns> /// <exception cref="System.ArgumentNullException">item</exception> - public async Task<BaseItemDto> GetBaseItemDto(BaseItem item, List<ItemFields> fields, ILibraryManager libraryManager) + public async Task<BaseItemDto> GetBaseItemDto(BaseItem item, List<ItemFields> fields) { if (item == null) { @@ -74,7 +77,7 @@ namespace MediaBrowser.Controller.Library if (fields.Contains(ItemFields.People)) { - tasks.Add(AttachPeople(dto, item, libraryManager)); + tasks.Add(AttachPeople(dto, item)); } AttachBasicFields(dto, item, fields); @@ -94,10 +97,9 @@ namespace MediaBrowser.Controller.Library /// <param name="item">The item.</param> /// <param name="user">The user.</param> /// <param name="fields">The fields.</param> - /// <param name="libraryManager">The library manager.</param> /// <returns>Task{DtoBaseItem}.</returns> /// <exception cref="System.ArgumentNullException">item</exception> - public async Task<BaseItemDto> GetBaseItemDto(BaseItem item, User user, List<ItemFields> fields, ILibraryManager libraryManager) + public async Task<BaseItemDto> GetBaseItemDto(BaseItem item, User user, List<ItemFields> fields) { if (item == null) { @@ -136,7 +138,7 @@ namespace MediaBrowser.Controller.Library if (fields.Contains(ItemFields.People)) { - tasks.Add(AttachPeople(dto, item, libraryManager)); + tasks.Add(AttachPeople(dto, item)); } AttachBasicFields(dto, item, fields); @@ -296,6 +298,11 @@ namespace MediaBrowser.Controller.Library dto.Overview = item.Overview; } + if (fields.Contains(ItemFields.OverviewHtml)) + { + dto.OverviewHtml = string.IsNullOrEmpty(item.Overview) ? item.Overview : item.Overview.StripHtml(); + } + // If there are no backdrops, indicate what parent has them in case the Ui wants to allow inheritance if (dto.BackdropImageTags.Count == 0) { @@ -515,7 +522,7 @@ namespace MediaBrowser.Controller.Library /// <param name="item">The item.</param> /// <param name="libraryManager">The library manager.</param> /// <returns>Task.</returns> - private async Task AttachPeople(BaseItemDto dto, BaseItem item, ILibraryManager libraryManager) + private async Task AttachPeople(BaseItemDto dto, BaseItem item) { if (item.People == null) { @@ -531,7 +538,7 @@ namespace MediaBrowser.Controller.Library { try { - return await libraryManager.GetPerson(c.Name).ConfigureAwait(false); + return await _libraryManager.GetPerson(c.Name).ConfigureAwait(false); } catch (IOException ex) { diff --git a/MediaBrowser.Controller/Providers/MediaInfo/BaseFFProbeProvider.cs b/MediaBrowser.Controller/Providers/MediaInfo/BaseFFProbeProvider.cs index c9f184fcf..e61611828 100644 --- a/MediaBrowser.Controller/Providers/MediaInfo/BaseFFProbeProvider.cs +++ b/MediaBrowser.Controller/Providers/MediaInfo/BaseFFProbeProvider.cs @@ -2,14 +2,13 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.MediaInfo; -using MediaBrowser.Controller.Persistence; using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Logging; using System; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; -using MediaBrowser.Model.Logging; namespace MediaBrowser.Controller.Providers.MediaInfo { diff --git a/MediaBrowser.Controller/Providers/Music/LastfmBaseProvider.cs b/MediaBrowser.Controller/Providers/Music/LastfmBaseProvider.cs index c3ff411ef..97bfa4570 100644 --- a/MediaBrowser.Controller/Providers/Music/LastfmBaseProvider.cs +++ b/MediaBrowser.Controller/Providers/Music/LastfmBaseProvider.cs @@ -54,7 +54,7 @@ namespace MediaBrowser.Controller.Providers.Music { get { - return "3-12-13.2"; + return "3-12-13.3"; } } diff --git a/MediaBrowser.Controller/Providers/Music/LastfmHelper.cs b/MediaBrowser.Controller/Providers/Music/LastfmHelper.cs index 8c80b4ef1..2ffdbdc6b 100644 --- a/MediaBrowser.Controller/Providers/Music/LastfmHelper.cs +++ b/MediaBrowser.Controller/Providers/Music/LastfmHelper.cs @@ -1,11 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; +using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Entities; +using System; namespace MediaBrowser.Controller.Providers.Music { @@ -18,11 +14,6 @@ namespace MediaBrowser.Controller.Providers.Music { var overview = data.bio != null ? data.bio.content : null; - if (!string.IsNullOrEmpty(overview)) - { - overview = StripHtml(overview); - } - artist.Overview = overview; var yearFormed = 0; @@ -53,11 +44,6 @@ namespace MediaBrowser.Controller.Providers.Music var overview = data.wiki != null ? data.wiki.content : null; - if (!string.IsNullOrEmpty(overview)) - { - overview = StripHtml(overview); - } - item.Overview = overview; var release = DateTime.MinValue; @@ -70,13 +56,6 @@ namespace MediaBrowser.Controller.Providers.Music } } - private static string StripHtml(string htmlString) - { - // http://stackoverflow.com/questions/1349023/how-can-i-strip-html-from-text-in-net - const string pattern = @"<(.|\n)*?>"; - return Regex.Replace(htmlString, pattern, string.Empty); - } - private static void AddGenres(BaseItem item, LastfmTags tags) { foreach (var tag in tags.tag) diff --git a/MediaBrowser.Model/DTO/BaseItemDto.cs b/MediaBrowser.Model/DTO/BaseItemDto.cs index 5b63f588c..b4d6aecd9 100644 --- a/MediaBrowser.Model/DTO/BaseItemDto.cs +++ b/MediaBrowser.Model/DTO/BaseItemDto.cs @@ -427,6 +427,13 @@ namespace MediaBrowser.Model.Dto public string MediaType { get; set; } /// <summary> + /// Gets or sets the overview HTML. + /// </summary> + /// <value>The overview HTML.</value> + [ProtoMember(70)] + public string OverviewHtml { get; set; } + + /// <summary> /// Gets a value indicating whether this instance can resume. /// </summary> /// <value><c>true</c> if this instance can resume; otherwise, <c>false</c>.</value> diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs index 8cf9796c0..7e57f8f90 100644 --- a/MediaBrowser.Model/Querying/ItemFields.cs +++ b/MediaBrowser.Model/Querying/ItemFields.cs @@ -52,6 +52,11 @@ namespace MediaBrowser.Model.Querying Overview, /// <summary> + /// The overview HTML + /// </summary> + OverviewHtml, + + /// <summary> /// The id of the item's parent /// </summary> ParentId, diff --git a/MediaBrowser.ServerApplication/EntryPoints/WebSocketEvents.cs b/MediaBrowser.ServerApplication/EntryPoints/WebSocketEvents.cs index b498a6fe4..2ee3193dc 100644 --- a/MediaBrowser.ServerApplication/EntryPoints/WebSocketEvents.cs +++ b/MediaBrowser.ServerApplication/EntryPoints/WebSocketEvents.cs @@ -174,7 +174,7 @@ namespace MediaBrowser.ServerApplication.EntryPoints /// <param name="e">The e.</param> async void userManager_UserUpdated(object sender, GenericEventArgs<User> e) { - var dto = await new DtoBuilder(_logger).GetUserDto(e.Argument).ConfigureAwait(false); + var dto = await new DtoBuilder(_logger, _libraryManager).GetUserDto(e.Argument).ConfigureAwait(false); _serverManager.SendWebSocketMessage("UserUpdated", dto); } diff --git a/MediaBrowser.WebDashboard/Api/DashboardInfoWebSocketListener.cs b/MediaBrowser.WebDashboard/Api/DashboardInfoWebSocketListener.cs index 38d5d32a8..5fc1f75c5 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardInfoWebSocketListener.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardInfoWebSocketListener.cs @@ -35,6 +35,7 @@ namespace MediaBrowser.WebDashboard.Api /// The _user manager /// </summary> private readonly IUserManager _userManager; + private readonly ILibraryManager _libraryManager; /// <summary> /// Initializes a new instance of the <see cref="DashboardInfoWebSocketListener" /> class. @@ -57,7 +58,7 @@ namespace MediaBrowser.WebDashboard.Api /// <returns>Task{IEnumerable{TaskInfo}}.</returns> protected override Task<DashboardInfo> GetDataToSend(object state) { - return DashboardService.GetDashboardInfo(_appHost, Logger, _taskManager, _userManager); + return DashboardService.GetDashboardInfo(_appHost, Logger, _taskManager, _userManager, _libraryManager); } } } diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs index 4c861c61b..150341b88 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardService.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs @@ -91,17 +91,19 @@ namespace MediaBrowser.WebDashboard.Api private readonly IUserManager _userManager; private readonly IServerApplicationHost _appHost; + private readonly ILibraryManager _libraryManager; /// <summary> /// Initializes a new instance of the <see cref="DashboardService" /> class. /// </summary> /// <param name="taskManager">The task manager.</param> /// <param name="userManager">The user manager.</param> - public DashboardService(ITaskManager taskManager, IUserManager userManager, IServerApplicationHost appHost) + public DashboardService(ITaskManager taskManager, IUserManager userManager, IServerApplicationHost appHost, ILibraryManager libraryManager) { _taskManager = taskManager; _userManager = userManager; _appHost = appHost; + _libraryManager = libraryManager; } /// <summary> @@ -111,7 +113,7 @@ namespace MediaBrowser.WebDashboard.Api /// <returns>System.Object.</returns> public object Get(GetDashboardInfo request) { - return GetDashboardInfo(_appHost, Logger, _taskManager, _userManager).Result; + return GetDashboardInfo(_appHost, Logger, _taskManager, _userManager, _libraryManager).Result; } /// <summary> @@ -121,11 +123,11 @@ namespace MediaBrowser.WebDashboard.Api /// <param name="taskManager">The task manager.</param> /// <param name="userManager">The user manager.</param> /// <returns>DashboardInfo.</returns> - public static async Task<DashboardInfo> GetDashboardInfo(IServerApplicationHost appHost, ILogger logger, ITaskManager taskManager, IUserManager userManager) + public static async Task<DashboardInfo> GetDashboardInfo(IServerApplicationHost appHost, ILogger logger, ITaskManager taskManager, IUserManager userManager, ILibraryManager libraryManager) { var connections = userManager.ConnectedUsers.ToArray(); - var dtoBuilder = new DtoBuilder(logger); + var dtoBuilder = new DtoBuilder(logger, libraryManager); var tasks = userManager.Users.Where(u => connections.Any(c => c.UserId == u.Id)).Select(dtoBuilder.GetUserDto); var users = await Task.WhenAll(tasks).ConfigureAwait(false); diff --git a/MediaBrowser.sln b/MediaBrowser.sln index 16caa617d..c13ad6f81 100644 --- a/MediaBrowser.sln +++ b/MediaBrowser.sln @@ -237,4 +237,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(Performance) = preSolution + HasPerformanceSessions = true + EndGlobalSection EndGlobal |
