UserDtoBuilder.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Model.Dto;
  3. using MediaBrowser.Model.Entities;
  4. using MediaBrowser.Model.Logging;
  5. using System;
  6. namespace MediaBrowser.Controller.Dto
  7. {
  8. /// <summary>
  9. /// Class UserDtoBuilder
  10. /// </summary>
  11. public class UserDtoBuilder
  12. {
  13. /// <summary>
  14. /// The _logger
  15. /// </summary>
  16. private readonly ILogger _logger;
  17. /// <summary>
  18. /// Initializes a new instance of the <see cref="UserDtoBuilder"/> class.
  19. /// </summary>
  20. /// <param name="logger">The logger.</param>
  21. public UserDtoBuilder(ILogger logger)
  22. {
  23. _logger = logger;
  24. }
  25. /// <summary>
  26. /// Converts a User to a DTOUser
  27. /// </summary>
  28. /// <param name="user">The user.</param>
  29. /// <returns>DtoUser.</returns>
  30. /// <exception cref="System.ArgumentNullException">user</exception>
  31. public UserDto GetUserDto(User user)
  32. {
  33. if (user == null)
  34. {
  35. throw new ArgumentNullException("user");
  36. }
  37. var dto = new UserDto
  38. {
  39. Id = user.Id.ToString(),
  40. Name = user.Name,
  41. HasPassword = !String.IsNullOrEmpty(user.Password),
  42. LastActivityDate = user.LastActivityDate,
  43. LastLoginDate = user.LastLoginDate,
  44. Configuration = user.Configuration
  45. };
  46. var image = user.PrimaryImagePath;
  47. if (!string.IsNullOrEmpty(image))
  48. {
  49. dto.PrimaryImageTag = Kernel.Instance.ImageManager.GetImageCacheTag(user, ImageType.Primary, image);
  50. try
  51. {
  52. DtoBuilder.AttachPrimaryImageAspectRatio(dto, user, _logger);
  53. }
  54. catch (Exception ex)
  55. {
  56. // Have to use a catch-all unfortunately because some .net image methods throw plain Exceptions
  57. _logger.ErrorException("Error generating PrimaryImageAspectRatio for {0}", ex, user.Name);
  58. }
  59. }
  60. return dto;
  61. }
  62. }
  63. }