mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-04 03:27:21 -05:00 
			
		
		
		
	Add PrimaryImageAspectRatio to user dto
This commit is contained in:
		
							parent
							
								
									6ff65ba278
								
							
						
					
					
						commit
						dbf6081a9b
					
				@ -122,7 +122,7 @@ namespace MediaBrowser.Api.Library
 | 
				
			|||||||
            // Get everything
 | 
					            // Get everything
 | 
				
			||||||
            var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
 | 
					            var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList(), _libraryManager).Result;
 | 
					            var result = new DtoBuilder(Logger).GetBaseItemDto(item, fields.ToList(), _libraryManager).Result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ToOptimizedResult(result);
 | 
					            return ToOptimizedResult(result);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -139,7 +139,7 @@ namespace MediaBrowser.Api.Library
 | 
				
			|||||||
            // Get everything
 | 
					            // Get everything
 | 
				
			||||||
            var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
 | 
					            var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList(), _libraryManager).Result;
 | 
					            var result = new DtoBuilder(Logger).GetBaseItemDto(item, fields.ToList(), _libraryManager).Result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ToOptimizedResult(result);
 | 
					            return ToOptimizedResult(result);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -156,7 +156,7 @@ namespace MediaBrowser.Api.Library
 | 
				
			|||||||
            // Get everything
 | 
					            // Get everything
 | 
				
			||||||
            var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
 | 
					            var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList(), _libraryManager).Result;
 | 
					            var result = new DtoBuilder(Logger).GetBaseItemDto(item, fields.ToList(), _libraryManager).Result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ToOptimizedResult(result);
 | 
					            return ToOptimizedResult(result);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -173,7 +173,7 @@ namespace MediaBrowser.Api.Library
 | 
				
			|||||||
            // Get everything
 | 
					            // Get everything
 | 
				
			||||||
            var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
 | 
					            var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var result = new DtoBuilder(Logger).GetDtoBaseItem(item, fields.ToList(), _libraryManager).Result;
 | 
					            var result = new DtoBuilder(Logger).GetBaseItemDto(item, fields.ToList(), _libraryManager).Result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ToOptimizedResult(result);
 | 
					            return ToOptimizedResult(result);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -146,7 +146,7 @@ namespace MediaBrowser.Api.UserLibrary
 | 
				
			|||||||
                return null;
 | 
					                return null;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var dto = await new DtoBuilder(Logger).GetDtoBaseItem(item, user, fields, LibraryManager).ConfigureAwait(false);
 | 
					            var dto = await new DtoBuilder(Logger).GetBaseItemDto(item, user, fields, LibraryManager).ConfigureAwait(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            dto.ChildCount = stub.Item2();
 | 
					            dto.ChildCount = stub.Item2();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -208,7 +208,7 @@ namespace MediaBrowser.Api.UserLibrary
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            var dtoBuilder = new DtoBuilder(Logger);
 | 
					            var dtoBuilder = new DtoBuilder(Logger);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var returnItems = await Task.WhenAll(pagedItems.Select(i => dtoBuilder.GetDtoBaseItem(i, user, fields, _libraryManager))).ConfigureAwait(false);
 | 
					            var returnItems = await Task.WhenAll(pagedItems.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields, _libraryManager))).ConfigureAwait(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return new ItemsResult
 | 
					            return new ItemsResult
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
				
			|||||||
@ -342,7 +342,7 @@ namespace MediaBrowser.Api.UserLibrary
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            var dtoBuilder = new DtoBuilder(Logger);
 | 
					            var dtoBuilder = new DtoBuilder(Logger);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var items = movie.SpecialFeatures.Select(i => dtoBuilder.GetDtoBaseItem(i, user, fields, _libraryManager)).AsParallel().Select(t => t.Result).ToList();
 | 
					            var items = movie.SpecialFeatures.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields, _libraryManager)).AsParallel().Select(t => t.Result).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ToOptimizedResult(items);
 | 
					            return ToOptimizedResult(items);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -363,7 +363,7 @@ namespace MediaBrowser.Api.UserLibrary
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            var dtoBuilder = new DtoBuilder(Logger);
 | 
					            var dtoBuilder = new DtoBuilder(Logger);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var items = item.LocalTrailers.Select(i => dtoBuilder.GetDtoBaseItem(i, user, fields, _libraryManager)).AsParallel().Select(t => t.Result).ToList();
 | 
					            var items = item.LocalTrailers.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields, _libraryManager)).AsParallel().Select(t => t.Result).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ToOptimizedResult(items);
 | 
					            return ToOptimizedResult(items);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -384,7 +384,7 @@ namespace MediaBrowser.Api.UserLibrary
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            var dtoBuilder = new DtoBuilder(Logger);
 | 
					            var dtoBuilder = new DtoBuilder(Logger);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var result = dtoBuilder.GetDtoBaseItem(item, user, fields, _libraryManager).Result;
 | 
					            var result = dtoBuilder.GetBaseItemDto(item, user, fields, _libraryManager).Result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ToOptimizedResult(result);
 | 
					            return ToOptimizedResult(result);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -169,9 +169,11 @@ namespace MediaBrowser.Api
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            var dtoBuilder = new DtoBuilder(Logger);
 | 
					            var dtoBuilder = new DtoBuilder(Logger);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var result = _userManager.Users.OrderBy(u => u.Name).Select(dtoBuilder.GetDtoUser).ToList();
 | 
					            var tasks = _userManager.Users.OrderBy(u => u.Name).Select(dtoBuilder.GetUserDto).ToArray();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ToOptimizedResult(result);
 | 
					            var task = Task.WhenAll(tasks);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return ToOptimizedResult(task.Result);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
@ -188,7 +190,7 @@ namespace MediaBrowser.Api
 | 
				
			|||||||
                throw new ResourceNotFoundException("User not found");
 | 
					                throw new ResourceNotFoundException("User not found");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var result = new DtoBuilder(Logger).GetDtoUser(user);
 | 
					            var result = new DtoBuilder(Logger).GetUserDto(user).Result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ToOptimizedResult(result);
 | 
					            return ToOptimizedResult(result);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -302,7 +304,7 @@ namespace MediaBrowser.Api
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            newUser.UpdateConfiguration(dtoUser.Configuration, _xmlSerializer);
 | 
					            newUser.UpdateConfiguration(dtoUser.Configuration, _xmlSerializer);
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            var result = new DtoBuilder(Logger).GetDtoUser(newUser);
 | 
					            var result = new DtoBuilder(Logger).GetUserDto(newUser).Result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ToOptimizedResult(result);
 | 
					            return ToOptimizedResult(result);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@ namespace MediaBrowser.Controller.Library
 | 
				
			|||||||
        /// <param name="fields">The fields.</param>
 | 
					        /// <param name="fields">The fields.</param>
 | 
				
			||||||
        /// <returns>Task{DtoBaseItem}.</returns>
 | 
					        /// <returns>Task{DtoBaseItem}.</returns>
 | 
				
			||||||
        /// <exception cref="System.ArgumentNullException">item</exception>
 | 
					        /// <exception cref="System.ArgumentNullException">item</exception>
 | 
				
			||||||
        public async Task<BaseItemDto> GetDtoBaseItem(BaseItem item, List<ItemFields> fields, ILibraryManager libraryManager)
 | 
					        public async Task<BaseItemDto> GetBaseItemDto(BaseItem item, List<ItemFields> fields, ILibraryManager libraryManager)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (item == null)
 | 
					            if (item == null)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@ -96,7 +96,7 @@ namespace MediaBrowser.Controller.Library
 | 
				
			|||||||
        /// <param name="libraryManager">The library manager.</param>
 | 
					        /// <param name="libraryManager">The library manager.</param>
 | 
				
			||||||
        /// <returns>Task{DtoBaseItem}.</returns>
 | 
					        /// <returns>Task{DtoBaseItem}.</returns>
 | 
				
			||||||
        /// <exception cref="System.ArgumentNullException">item</exception>
 | 
					        /// <exception cref="System.ArgumentNullException">item</exception>
 | 
				
			||||||
        public async Task<BaseItemDto> GetDtoBaseItem(BaseItem item, User user, List<ItemFields> fields, ILibraryManager libraryManager)
 | 
					        public async Task<BaseItemDto> GetBaseItemDto(BaseItem item, User user, List<ItemFields> fields, ILibraryManager libraryManager)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (item == null)
 | 
					            if (item == null)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@ -168,7 +168,7 @@ namespace MediaBrowser.Controller.Library
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                if (userData != null)
 | 
					                if (userData != null)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    dto.UserData = GetDtoUserItemData(userData);
 | 
					                    dto.UserData = GetUserItemDataDto(userData);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -197,7 +197,7 @@ namespace MediaBrowser.Controller.Library
 | 
				
			|||||||
        /// <param name="dto">The dto.</param>
 | 
					        /// <param name="dto">The dto.</param>
 | 
				
			||||||
        /// <param name="item">The item.</param>
 | 
					        /// <param name="item">The item.</param>
 | 
				
			||||||
        /// <returns>Task.</returns>
 | 
					        /// <returns>Task.</returns>
 | 
				
			||||||
        private async Task AttachPrimaryImageAspectRatio(BaseItemDto dto, BaseItem item)
 | 
					        private async Task AttachPrimaryImageAspectRatio(IItemDto dto, BaseItem item)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            var path = item.PrimaryImagePath;
 | 
					            var path = item.PrimaryImagePath;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -647,7 +647,7 @@ namespace MediaBrowser.Controller.Library
 | 
				
			|||||||
        /// <param name="data">The data.</param>
 | 
					        /// <param name="data">The data.</param>
 | 
				
			||||||
        /// <returns>DtoUserItemData.</returns>
 | 
					        /// <returns>DtoUserItemData.</returns>
 | 
				
			||||||
        /// <exception cref="System.ArgumentNullException"></exception>
 | 
					        /// <exception cref="System.ArgumentNullException"></exception>
 | 
				
			||||||
        public UserItemDataDto GetDtoUserItemData(UserItemData data)
 | 
					        public UserItemDataDto GetUserItemDataDto(UserItemData data)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (data == null)
 | 
					            if (data == null)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@ -758,7 +758,7 @@ namespace MediaBrowser.Controller.Library
 | 
				
			|||||||
        /// <param name="user">The user.</param>
 | 
					        /// <param name="user">The user.</param>
 | 
				
			||||||
        /// <returns>DtoUser.</returns>
 | 
					        /// <returns>DtoUser.</returns>
 | 
				
			||||||
        /// <exception cref="System.ArgumentNullException">user</exception>
 | 
					        /// <exception cref="System.ArgumentNullException">user</exception>
 | 
				
			||||||
        public UserDto GetDtoUser(User user)
 | 
					        public async Task<UserDto> GetUserDto(User user)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (user == null)
 | 
					            if (user == null)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@ -780,8 +780,18 @@ namespace MediaBrowser.Controller.Library
 | 
				
			|||||||
            if (!string.IsNullOrEmpty(image))
 | 
					            if (!string.IsNullOrEmpty(image))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                dto.PrimaryImageTag = Kernel.Instance.ImageManager.GetImageCacheTag(user, ImageType.Primary, image);
 | 
					                dto.PrimaryImageTag = Kernel.Instance.ImageManager.GetImageCacheTag(user, ImageType.Primary, image);
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                try
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    await AttachPrimaryImageAspectRatio(dto, user).ConfigureAwait(false);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                catch (Exception ex)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    // Have to use a catch-all unfortunately because some .net image methods throw plain Exceptions
 | 
				
			||||||
 | 
					                    _logger.ErrorException("Error generating PrimaryImageAspectRatio for {0}", ex, user.Name);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
            return dto;
 | 
					            return dto;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ namespace MediaBrowser.Model.Dto
 | 
				
			|||||||
    /// This holds information about a BaseItem in a format that is convenient for the client.
 | 
					    /// This holds information about a BaseItem in a format that is convenient for the client.
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [ProtoContract]
 | 
					    [ProtoContract]
 | 
				
			||||||
    public class BaseItemDto : IHasProviderIds, INotifyPropertyChanged
 | 
					    public class BaseItemDto : IHasProviderIds, INotifyPropertyChanged, IItemDto
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Gets or sets the name.
 | 
					        /// Gets or sets the name.
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ namespace MediaBrowser.Model.Dto
 | 
				
			|||||||
    /// Class UserDto
 | 
					    /// Class UserDto
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    [ProtoContract]
 | 
					    [ProtoContract]
 | 
				
			||||||
    public class UserDto : INotifyPropertyChanged
 | 
					    public class UserDto : INotifyPropertyChanged, IItemDto
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Gets or sets the name.
 | 
					        /// Gets or sets the name.
 | 
				
			||||||
@ -61,6 +61,13 @@ namespace MediaBrowser.Model.Dto
 | 
				
			|||||||
        [ProtoMember(7)]
 | 
					        [ProtoMember(7)]
 | 
				
			||||||
        public UserConfiguration Configuration { get; set; }
 | 
					        public UserConfiguration Configuration { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Gets or sets the primary image aspect ratio.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <value>The primary image aspect ratio.</value>
 | 
				
			||||||
 | 
					        [ProtoMember(8)]
 | 
				
			||||||
 | 
					        public double? PrimaryImageAspectRatio { get; set; }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Gets a value indicating whether this instance has primary image.
 | 
					        /// Gets a value indicating whether this instance has primary image.
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								MediaBrowser.Model/Dto/IItemDto.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								MediaBrowser.Model/Dto/IItemDto.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					namespace MediaBrowser.Model.Dto
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public interface IItemDto
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        double? PrimaryImageAspectRatio { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -44,6 +44,7 @@
 | 
				
			|||||||
    <Compile Include="Configuration\ServerConfiguration.cs" />
 | 
					    <Compile Include="Configuration\ServerConfiguration.cs" />
 | 
				
			||||||
    <Compile Include="Dto\BaseItemPerson.cs" />
 | 
					    <Compile Include="Dto\BaseItemPerson.cs" />
 | 
				
			||||||
    <Compile Include="Dto\ChapterInfoDto.cs" />
 | 
					    <Compile Include="Dto\ChapterInfoDto.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Dto\IItemDto.cs" />
 | 
				
			||||||
    <Compile Include="Dto\ItemsByNameQuery.cs" />
 | 
					    <Compile Include="Dto\ItemsByNameQuery.cs" />
 | 
				
			||||||
    <Compile Include="Dto\MediaType.cs" />
 | 
					    <Compile Include="Dto\MediaType.cs" />
 | 
				
			||||||
    <Compile Include="Entities\BaseItemInfo.cs" />
 | 
					    <Compile Include="Entities\BaseItemInfo.cs" />
 | 
				
			||||||
 | 
				
			|||||||
@ -53,7 +53,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                throw new ArgumentNullException("result");
 | 
					                throw new ArgumentNullException("result");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
            Response.AddHeader("Vary", "Accept-Encoding");
 | 
					            Response.AddHeader("Vary", "Accept-Encoding");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return RequestContext.ToOptimizedResult(result);
 | 
					            return RequestContext.ToOptimizedResult(result);
 | 
				
			||||||
 | 
				
			|||||||
@ -172,9 +172,11 @@ namespace MediaBrowser.ServerApplication.EntryPoints
 | 
				
			|||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// <param name="sender">The sender.</param>
 | 
					        /// <param name="sender">The sender.</param>
 | 
				
			||||||
        /// <param name="e">The e.</param>
 | 
					        /// <param name="e">The e.</param>
 | 
				
			||||||
        void userManager_UserUpdated(object sender, GenericEventArgs<User> e)
 | 
					        async void userManager_UserUpdated(object sender, GenericEventArgs<User> e)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            _serverManager.SendWebSocketMessage("UserUpdated", new DtoBuilder(_logger).GetDtoUser(e.Argument));
 | 
					            var dto = await new DtoBuilder(_logger).GetUserDto(e.Argument).ConfigureAwait(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            _serverManager.SendWebSocketMessage("UserUpdated", dto);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
 | 
				
			|||||||
@ -18,6 +18,8 @@
 | 
				
			|||||||
                        </MenuItem>
 | 
					                        </MenuItem>
 | 
				
			||||||
                        <MenuItem x:Name="cmdSwaggerApiDocs" Header="Swagger" Click="cmdSwaggerApiDocs_Click" Background="White">
 | 
					                        <MenuItem x:Name="cmdSwaggerApiDocs" Header="Swagger" Click="cmdSwaggerApiDocs_Click" Background="White">
 | 
				
			||||||
                        </MenuItem>
 | 
					                        </MenuItem>
 | 
				
			||||||
 | 
					                        <MenuItem x:Name="cmdGithubWiki" Header="GitHub Wiki" Click="cmdGithubWiki_Click" Background="White">
 | 
				
			||||||
 | 
					                        </MenuItem>
 | 
				
			||||||
                    </MenuItem>
 | 
					                    </MenuItem>
 | 
				
			||||||
                    <Separator/>
 | 
					                    <Separator/>
 | 
				
			||||||
                    <MenuItem x:Name="cmShowLogWindow" Header="Show Log Window" IsCheckable="True" Click="CmShowLogWindow_click"/>
 | 
					                    <MenuItem x:Name="cmShowLogWindow" Header="Show Log Window" IsCheckable="True" Click="CmShowLogWindow_click"/>
 | 
				
			||||||
 | 
				
			|||||||
@ -184,6 +184,11 @@ namespace MediaBrowser.ServerApplication
 | 
				
			|||||||
            App.OpenUrl("http://localhost:" + _configurationManager.Configuration.HttpServerPortNumber + "/" +
 | 
					            App.OpenUrl("http://localhost:" + _configurationManager.Configuration.HttpServerPortNumber + "/" +
 | 
				
			||||||
                      Kernel.Instance.WebApplicationName + "/swagger-ui/index.html");
 | 
					                      Kernel.Instance.WebApplicationName + "/swagger-ui/index.html");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        void cmdGithubWiki_Click(object sender, EventArgs e)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            App.OpenUrl("https://github.com/MediaBrowser/MediaBrowser/wiki");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Occurs when [property changed].
 | 
					        /// Occurs when [property changed].
 | 
				
			||||||
 | 
				
			|||||||
@ -57,7 +57,7 @@ namespace MediaBrowser.WebDashboard.Api
 | 
				
			|||||||
        /// <returns>Task{IEnumerable{TaskInfo}}.</returns>
 | 
					        /// <returns>Task{IEnumerable{TaskInfo}}.</returns>
 | 
				
			||||||
        protected override Task<DashboardInfo> GetDataToSend(object state)
 | 
					        protected override Task<DashboardInfo> GetDataToSend(object state)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return Task.FromResult(DashboardService.GetDashboardInfo(_appHost, Logger, _taskManager, _userManager));
 | 
					            return DashboardService.GetDashboardInfo(_appHost, Logger, _taskManager, _userManager);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -110,7 +110,7 @@ namespace MediaBrowser.WebDashboard.Api
 | 
				
			|||||||
        /// <returns>System.Object.</returns>
 | 
					        /// <returns>System.Object.</returns>
 | 
				
			||||||
        public object Get(GetDashboardInfo request)
 | 
					        public object Get(GetDashboardInfo request)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return GetDashboardInfo(_appHost, Logger, _taskManager, _userManager);
 | 
					            return GetDashboardInfo(_appHost, Logger, _taskManager, _userManager).Result;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
@ -120,12 +120,15 @@ namespace MediaBrowser.WebDashboard.Api
 | 
				
			|||||||
        /// <param name="taskManager">The task manager.</param>
 | 
					        /// <param name="taskManager">The task manager.</param>
 | 
				
			||||||
        /// <param name="userManager">The user manager.</param>
 | 
					        /// <param name="userManager">The user manager.</param>
 | 
				
			||||||
        /// <returns>DashboardInfo.</returns>
 | 
					        /// <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 connections = userManager.ConnectedUsers.ToArray();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var dtoBuilder = new DtoBuilder(logger);
 | 
					            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
 | 
					            return new DashboardInfo
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SystemInfo = appHost.GetSystemInfo(),
 | 
					                SystemInfo = appHost.GetSystemInfo(),
 | 
				
			||||||
@ -138,7 +141,7 @@ namespace MediaBrowser.WebDashboard.Api
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                ActiveConnections = connections,
 | 
					                ActiveConnections = connections,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                Users = userManager.Users.Where(u => connections.Any(c => c.UserId == u.Id)).Select(dtoBuilder.GetDtoUser).ToArray()
 | 
					                Users = users
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user