Exemple #1
0
        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;
        }
Exemple #2
0
        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")));
                }
            }
        }
Exemple #3
0
        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);
            }
        }