private async Task <FileOperationResult <IImage> > ReleaseSecondaryImageAction(Guid id, int imageId, EntityTagHeaderValue etag = null) { try { var release = await GetRelease(id); if (release == null) { return(new FileOperationResult <IImage>(true, string.Format("Release Not Found [{0}]", id))); } byte[] imageBytes = null; string artistFolder = null; string releaseFolder = null; try { // See if cover art file exists in release folder artistFolder = release.Artist.ArtistFileFolder(Configuration); if (!Directory.Exists(artistFolder)) { Logger.LogWarning($"Artist Folder [{artistFolder}], Not Found For Artist `{release.Artist}`"); } else { releaseFolder = release.ReleaseFileFolder(artistFolder); if (!Directory.Exists(releaseFolder)) { Logger.LogWarning($"Release Folder [{releaseFolder}], Not Found For Release `{release}`"); } else { var releaseSecondaryImages = ImageHelper .FindImageTypeInDirectory(new DirectoryInfo(releaseFolder), ImageType.ReleaseSecondary) .ToArray(); if (releaseSecondaryImages.Length >= imageId && releaseSecondaryImages[imageId] != null) { imageBytes = File.ReadAllBytes(releaseSecondaryImages[imageId].FullName); } } } } catch (Exception ex) { Logger.LogError(ex, $"Error Reading Release Folder [{releaseFolder}] Artist Folder [{artistFolder}] For Artist `{release.Artist.Id}`"); } IImage image = new Library.Imaging.Image(id) { Bytes = imageBytes, CreatedDate = release.CreatedDate }; return(GenerateFileOperationResult(id, image, etag)); } catch (Exception ex) { Logger.LogError($"Error fetching Release Thumbnail [{id}]", ex); } return(new FileOperationResult <IImage>(OperationMessages.ErrorOccured)); }
private async Task <FileOperationResult <IImage> > TrackImageAction(Guid id, int?width, int?height, EntityTagHeaderValue etag = null) { try { var track = await GetTrack(id); if (track == null) { return(new FileOperationResult <IImage>(true, string.Format("Track Not Found [{0}]", id))); } IImage image = new Library.Imaging.Image(id) { CreatedDate = track.CreatedDate }; var trackImageFileName = track.PathToTrackThumbnail(Configuration); if (File.Exists(trackImageFileName)) { image.Bytes = File.ReadAllBytes(trackImageFileName); } if (image.Bytes == null || !image.Bytes.Any()) { // If no track image is found then return image for release return(await ReleaseImage(track.ReleaseMedia.Release.RoadieId, width, height, etag)); } return(GenerateFileOperationResult(id, image, etag)); } catch (Exception ex) { Logger.LogError($"Error fetching Track Thumbnail [{id}]", ex); } return(new FileOperationResult <IImage>(OperationMessages.ErrorOccured)); }
/// <summary> /// Get image for an artist, see if the artist has an image in their folder and use that else use Artist.Thumbnail, is also not found use Artist DefaultNotFound image. /// </summary> private async Task <FileOperationResult <IImage> > ArtistImageAction(Guid id, EntityTagHeaderValue etag = null) { try { var artist = await GetArtist(id); if (artist == null) { return(new FileOperationResult <IImage>(true, string.Format("Artist Not Found [{0}]", id))); } byte[] imageBytes = null; string artistFolder = null; try { // See if artist images exists in artist folder artistFolder = artist.ArtistFileFolder(Configuration); if (!Directory.Exists(artistFolder)) { Logger.LogWarning($"Artist Folder [{artistFolder}], Not Found For Artist `{artist}`"); } else { var artistImages = ImageHelper.FindImageTypeInDirectory(new DirectoryInfo(artistFolder), ImageType.Artist); if (artistImages.Any()) { imageBytes = File.ReadAllBytes(artistImages.First().FullName); } } } catch (Exception ex) { Logger.LogError(ex, $"Error Reading Folder [{artistFolder}] For Artist [{artist.Id}]"); } IImage image = new Library.Imaging.Image(id) { Bytes = imageBytes, }; if (imageBytes == null || !imageBytes.Any()) { image = DefaultNotFoundImages.Artist; } return(GenerateFileOperationResult(id, image, etag)); } catch (Exception ex) { Logger.LogError($"Error fetching Artist Thumbnail [{id}]", ex); } return(new FileOperationResult <IImage>(OperationMessages.ErrorOccured)); }
private async Task <FileOperationResult <IImage> > UserImageAction(Guid id, EntityTagHeaderValue etag = null) { try { var user = await GetUser(id); if (user == null) { return(new FileOperationResult <IImage>(true, string.Format("User Not Found [{0}]", id))); } IImage image = new Library.Imaging.Image(id) { CreatedDate = user.CreatedDate.Value }; var userImageFilename = user.PathToImage(Configuration); try { if (File.Exists(userImageFilename)) { image.Bytes = File.ReadAllBytes(userImageFilename); } } catch (Exception ex) { Logger.LogError(ex, $"Error Reading Image File [{userImageFilename}]"); } if (image.Bytes == null || !image.Bytes.Any()) { image = DefaultNotFoundImages.User; } return(GenerateFileOperationResult(id, image, etag, "image/png")); } catch (Exception ex) { Logger.LogError($"Error fetching User Thumbnail [{id}]", ex); } return(new FileOperationResult <IImage>(OperationMessages.ErrorOccured)); }