private static Media PrepareMediaForAdding(string filename, int albumId, string mediaPath, int userId, string contentType, string customName) { var media = new Media { FileName = filename, AlbumId = albumId, MediaPath = mediaPath, ThumbnailPath = mediaPath + "tn\\", CustomName = customName }; media.ThumbnailUrl = Constants.FileMediaUrl + media.CustomName + @"/thumb"; media.MediaUrl = Constants.FileMediaUrl + media.CustomName; media.MediaType = contentType; return media; }
private void CreateThumbnail(Media media, string mediaPath, string filename) { if (IsMediaSupported(media.MediaType)) { _fileHelper.CreateDirectory(media.ThumbnailPath); if (IsVideo(media.MediaType)) { Task.Run(() => _imageHelper.CreateVideoThumbnail(mediaPath + filename, media.ThumbnailPath, _configurationHelper.GetAppSettings("ThumbnailPrefix"))); } else if (media.MediaType == "image/gif") { Task.Run(() => _imageHelper.CreateGifThumbnail(mediaPath + filename, media.ThumbnailPath, _configurationHelper.GetAppSettings("ThumbnailPrefix"))); } else { Task.Run(() => _imageHelper.CreateThumbnail(mediaPath + filename, media.ThumbnailPath, _configurationHelper.GetAppSettings("ThumbnailPrefix"))); } } }
public Media Add(Media media, int userId) { try { var guid = Guid.NewGuid().ToString(); var extension = !string.IsNullOrEmpty(media.MediaType) ? media.MediaType.Split('/')[1] ?? "jpg" : "jpg"; var filename = guid + "." + extension; var album = _albumRepository.Find(a => a.AlbumId == media.AlbumId, false).FirstOrDefault(); if (album == null) { album = GetAlbumByName(DateTime.Now.ToShortDateString(), userId); if (album == null) throw new Exception("Error creating or finding album"); } var mediaPath = _imageHelper.GenerateImagePath(album.UserId, guid, Constants.FileMediaLocation); if (string.IsNullOrEmpty(mediaPath)) throw new Exception("Error generating media directory path"); var hasCreatedDir = _fileHelper.CreateDirectory(mediaPath); if (!hasCreatedDir) throw new Exception("Error creating media directory"); var hasCreatedMedia = _imageHelper.SaveImage(media.MediaContent, mediaPath, filename); if (!hasCreatedMedia) throw new Exception("Error saving media"); var tMedia = PrepareMediaForAdding(filename, album.AlbumId, mediaPath, album.UserId, media.MediaType, guid); CreateThumbnail(tMedia, mediaPath, filename); return MediaMapper.ToDto(_mediaRepository.Add(MediaMapper.ToEntity(media))); } catch (Exception ex) { throw new BlogException(ex.Message, ex.InnerException); } }