| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | using MediaBrowser.Controller.Entities;using MediaBrowser.Model.Dto;using MediaBrowser.Model.Entities;using MediaBrowser.Model.Logging;using System;using System.Threading.Tasks;namespace MediaBrowser.Controller.Dto{    /// <summary>    /// Class UserDtoBuilder    /// </summary>    public class UserDtoBuilder    {        /// <summary>        /// The _logger        /// </summary>        private readonly ILogger _logger;        /// <summary>        /// Initializes a new instance of the <see cref="UserDtoBuilder"/> class.        /// </summary>        /// <param name="logger">The logger.</param>        public UserDtoBuilder(ILogger logger)        {            _logger = logger;        }        /// <summary>        /// Converts a User to a DTOUser        /// </summary>        /// <param name="user">The user.</param>        /// <returns>DtoUser.</returns>        /// <exception cref="System.ArgumentNullException">user</exception>        public async Task<UserDto> GetUserDto(User user)        {            if (user == null)            {                throw new ArgumentNullException("user");            }            var dto = new UserDto            {                Id = user.Id.ToString("N"),                Name = user.Name,                HasPassword = !String.IsNullOrEmpty(user.Password),                LastActivityDate = user.LastActivityDate,                LastLoginDate = user.LastLoginDate,                Configuration = user.Configuration            };            var image = user.PrimaryImagePath;            if (!string.IsNullOrEmpty(image))            {                dto.PrimaryImageTag = Kernel.Instance.ImageManager.GetImageCacheTag(user, ImageType.Primary, image);                try                {                    await DtoBuilder.AttachPrimaryImageAspectRatio(dto, user, _logger).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;        }    }}
 |