/// <summary> /// Attaches the primary image aspect ratio. /// </summary> /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <returns>Task.</returns> public void AttachPrimaryImageAspectRatio(IItemDto dto, IHasImages item) { var imageInfo = item.GetImageInfo(ImageType.Primary, 0); if (imageInfo == null) { return; } var path = imageInfo.Path; // See if we can avoid a file system lookup by looking for the file in ResolveArgs var dateModified = imageInfo.DateModified; ImageSize size; try { size = _imageProcessor.GetImageSize(path, dateModified); } catch (FileNotFoundException) { _logger.Error("Image file does not exist: {0}", path); return; } catch (Exception ex) { _logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, path); return; } dto.OriginalPrimaryImageAspectRatio = size.Width / size.Height; var supportedEnhancers = _imageProcessor.GetSupportedEnhancers(item, ImageType.Primary).ToList(); foreach (var enhancer in supportedEnhancers) { try { size = enhancer.GetEnhancedImageSize(item, ImageType.Primary, 0, size); } catch (Exception ex) { _logger.ErrorException("Error in image enhancer: {0}", ex, enhancer.GetType().Name); } } dto.PrimaryImageAspectRatio = size.Width / size.Height; }
/// <summary> /// Attaches the primary image aspect ratio. /// </summary> /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <returns>Task.</returns> private async Task AttachPrimaryImageAspectRatio(IItemDto dto, BaseItem item) { var path = item.PrimaryImagePath; if (string.IsNullOrEmpty(path)) { return; } var metaFileEntry = item.ResolveArgs.GetMetaFileByPath(path); // See if we can avoid a file system lookup by looking for the file in ResolveArgs var dateModified = metaFileEntry == null?File.GetLastWriteTimeUtc(path) : metaFileEntry.Value.LastWriteTimeUtc; ImageSize size; try { size = await Kernel.Instance.ImageManager.GetImageSize(path, dateModified).ConfigureAwait(false); } catch (FileNotFoundException) { _logger.Error("Image file does not exist: {0}", path); return; } catch (Exception ex) { _logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, path); return; } foreach (var enhancer in Kernel.Instance.ImageEnhancers .Where(i => i.Supports(item, ImageType.Primary))) { size = enhancer.GetEnhancedImageSize(item, ImageType.Primary, 0, size); } dto.PrimaryImageAspectRatio = size.Width / size.Height; }
/// <summary> /// Attaches the primary image aspect ratio. /// </summary> /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <returns>Task.</returns> public void AttachPrimaryImageAspectRatio(IItemDto dto, BaseItem item) { dto.PrimaryImageAspectRatio = GetPrimaryImageAspectRatio(item); }
/// <summary> /// Attaches the primary image aspect ratio. /// </summary> /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <param name="logger">The _logger.</param> /// <returns>Task.</returns> internal static async Task AttachPrimaryImageAspectRatio(IItemDto dto, BaseItem item, ILogger logger) { var path = item.PrimaryImagePath; if (string.IsNullOrEmpty(path)) { return; } var metaFileEntry = item.ResolveArgs.GetMetaFileByPath(path); // See if we can avoid a file system lookup by looking for the file in ResolveArgs var dateModified = metaFileEntry == null ? File.GetLastWriteTimeUtc(path) : metaFileEntry.LastWriteTimeUtc; ImageSize size; try { size = await Kernel.Instance.ImageManager.GetImageSize(path, dateModified).ConfigureAwait(false); } catch (FileNotFoundException) { logger.Error("Image file does not exist: {0}", path); return; } catch (Exception ex) { logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, path); return; } dto.OriginalPrimaryImageAspectRatio = size.Width / size.Height; var supportedEnhancers = Kernel.Instance.ImageManager.ImageEnhancers.Where(i => { try { return i.Supports(item, ImageType.Primary); } catch (Exception ex) { logger.ErrorException("Error in image enhancer: {0}", ex, i.GetType().Name); return false; } }).ToList(); foreach (var enhancer in supportedEnhancers) { try { size = enhancer.GetEnhancedImageSize(item, ImageType.Primary, 0, size); } catch (Exception ex) { logger.ErrorException("Error in image enhancer: {0}", ex, enhancer.GetType().Name); } } dto.PrimaryImageAspectRatio = size.Width / size.Height; }
/// <summary> /// Attaches the primary image aspect ratio. /// </summary> /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <returns>Task.</returns> public void AttachPrimaryImageAspectRatio(IItemDto dto, IHasImages item) { dto.PrimaryImageAspectRatio = GetPrimaryImageAspectRatio(item); }
/// <summary> /// Attaches the primary image aspect ratio. /// </summary> /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <returns>Task.</returns> private void AttachPrimaryImageAspectRatio(IItemDto dto, BaseItem item) { var path = item.PrimaryImagePath; if (string.IsNullOrEmpty(path)) { return; } // See if we can avoid a file system lookup by looking for the file in ResolveArgs var dateModified = item.GetImageDateModified(path); ImageSize size; try { size = _imageProcessor.GetImageSize(path, dateModified); } catch (FileNotFoundException) { _logger.Error("Image file does not exist: {0}", path); return; } catch (Exception ex) { _logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, path); return; } dto.OriginalPrimaryImageAspectRatio = size.Width / size.Height; var supportedEnhancers = _imageProcessor.GetSupportedEnhancers(item, ImageType.Primary).ToList(); foreach (var enhancer in supportedEnhancers) { try { size = enhancer.GetEnhancedImageSize(item, ImageType.Primary, 0, size); } catch (Exception ex) { _logger.ErrorException("Error in image enhancer: {0}", ex, enhancer.GetType().Name); } } dto.PrimaryImageAspectRatio = size.Width / size.Height; }
/// <summary> /// Attaches the primary image aspect ratio. /// </summary> /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <param name="fields">The fields.</param> /// <returns>Task.</returns> public void AttachPrimaryImageAspectRatio(IItemDto dto, IHasImages item, List<ItemFields> fields) { var imageInfo = item.GetImageInfo(ImageType.Primary, 0); if (imageInfo == null || !imageInfo.IsLocalFile) { return; } ImageSize size; try { size = _imageProcessor.GetImageSize(imageInfo); } catch (Exception ex) { //_logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, path); return; } var supportedEnhancers = _imageProcessor.GetSupportedEnhancers(item, ImageType.Primary).ToList(); foreach (var enhancer in supportedEnhancers) { try { size = enhancer.GetEnhancedImageSize(item, ImageType.Primary, 0, size); } catch (Exception ex) { _logger.ErrorException("Error in image enhancer: {0}", ex, enhancer.GetType().Name); } } if (size.Width > 0 && size.Height > 0) { dto.PrimaryImageAspectRatio = size.Width / size.Height; } }
private static Item Convert(IItemDto dto) { if (dto == null) throw new ArgumentNullException("dto"); var item = dto.IsAssembly() ? new Assembly() : new Item(); Mapper.Map(dto, item, dto.GetType(), item.GetType()); return item; }