Ejemplo n.º 1
0
        public MediabankEntity SaveFile(byte[] fileData, string originalFileName, MediabankEntity file)
        {
            file.FileExtension = GetFileExtension(originalFileName);
            file.FileType      = GetFileType(file.FileExtension);

            string fileName     = $"{Guid.NewGuid().ToString()}{file.FileExtension}";
            string directory    = $@"{AppDomain.CurrentDomain.BaseDirectory}Uploads\Mediabank\{file.ClubId}";
            string fullFileName = $@"{directory}\{fileName}";

            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }

            using (FileStream fs = new FileStream(fullFileName, FileMode.OpenOrCreate))
            {
                fs.Write(fileData, 0, fileData.Length);
                fs.Close();
            }

            file.FileUrl = $@"/Uploads/Mediabank/{file.ClubId}/{fileName}";

            GenerateThumbnail(file, fullFileName, fileName);

            MediabankFile mbFile = MapMediabankFile(file);

            return(MapMediabankEntity(MediabankDAL.SaveFile(mbFile)));
        }
Ejemplo n.º 2
0
        public bool DeleteMediabankFile(int fileId, int clubId)
        {
            bool            success = false;
            MediabankEntity file    = GetFile(clubId, fileId);

            if (file != null)
            {
                string physicalPath          = $@"{AppDomain.CurrentDomain.BaseDirectory}\{file.FileUrl.Replace("/", @"\")}";
                string physicalThumbnailPath = string.Empty;

                if (!string.IsNullOrEmpty(file.Thumbnail))
                {
                    physicalThumbnailPath = $@"{AppDomain.CurrentDomain.BaseDirectory}\{file.Thumbnail.Replace("/", @"\")}";
                }

                if (File.Exists(physicalPath))
                {
                    File.Delete(physicalPath);
                }

                if (!string.IsNullOrEmpty(physicalThumbnailPath) && File.Exists(physicalThumbnailPath))
                {
                    File.Delete(physicalThumbnailPath);
                }

                success = MediabankDAL.DeleteMediabankFile(MapMediabankFile(file));
            }

            return(success);
        }
Ejemplo n.º 3
0
        private void GenerageImageThumbnail(MediabankEntity file, string fullFileName, string fileName)
        {
            Image img = Image.FromFile(fullFileName);

            int    newWidth  = 0;
            int    newHeight = 0;
            double divider   = 0;

            if (img.Width > img.Height)
            {
                divider = (img.Height / (double)MIN_THUMBNAIL_SIZE);
            }
            else
            {
                divider = (img.Width / (double)MIN_THUMBNAIL_SIZE);
            }

            newWidth  = (int)(img.Width / divider);
            newHeight = (int)(img.Height / divider);

            Image newImage = Resize(img, newWidth, newHeight, RotateFlipType.RotateNoneFlipNone);

            string newFullFileName = $@"{fullFileName.Replace(file.FileExtension, string.Empty)}_Thumbnail{file.FileExtension}";

            newImage.Save(newFullFileName);
            file.Thumbnail = $@"/Uploads/Mediabank/{file.ClubId}/{fileName.Replace(file.FileExtension, string.Empty)}_Thumbnail{file.FileExtension}";
        }
Ejemplo n.º 4
0
        public HttpResponseMessage UpdateMediabankFile(MediabankEntity file)
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
            bool success = _mediabank.UpdateMediabankFile(file);

            response.Content = new ObjectContent <bool>(success, new JsonMediaTypeFormatter());
            return(response);
        }
Ejemplo n.º 5
0
        public HttpResponseMessage GetFile(int fileId)
        {
            UserPrincipal loggedInUser = (UserPrincipal)HttpContext.Current.User;

            HttpResponseMessage response      = new HttpResponseMessage(HttpStatusCode.OK);
            MediabankEntity     mediabankFile = _mediabank.GetFile(loggedInUser.AccountSession.ClubId, fileId);

            response.Content = new ObjectContent <MediabankEntity>(mediabankFile, new JsonMediaTypeFormatter());
            return(response);
        }
Ejemplo n.º 6
0
 private void GenerateThumbnail(MediabankEntity file, string fullFileName, string fileName)
 {
     if (file.FileType == "IMAGE")
     {
         GenerageImageThumbnail(file, fullFileName, fileName);
     }
     else if (file.FileType == "VIDEO")
     {
         GenerageVideoThumbnail(file, fullFileName, fileName);
     }
 }
Ejemplo n.º 7
0
        public async Task <HttpResponseMessage> UploadMediabankFile()
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

            if (!Request.Content.IsMimeMultipartContent())
            {
                response.StatusCode = HttpStatusCode.UnsupportedMediaType;
            }
            else
            {
                MediabankEntity mediabankFile = new MediabankEntity();

                UserPrincipal loggedInUser = (UserPrincipal)HttpContext.Current.User;
                mediabankFile.ClubId      = loggedInUser.AccountSession.ClubId;
                mediabankFile.CreatedById = loggedInUser.AccountSession.AccountId;

                MultipartMemoryStreamProvider provider = new MultipartMemoryStreamProvider();
                await Request.Content.ReadAsMultipartAsync(provider);

                mediabankFile.Name        = ((System.Web.HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.Form["fileName"].ToString();
                mediabankFile.Description = ((System.Web.HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.Form["fileDescription"].ToString();

                await Request.Content.ReadAsMultipartAsync(provider)
                .ContinueWith(async o =>
                {
                    var fileContent = provider.Contents.FirstOrDefault();
                    string name     = string.Empty;

                    if (fileContent != null)
                    {
                        name = fileContent.Headers.ContentDisposition.FileName.Replace("\"", string.Empty);
                    }

                    byte[] fileData = await provider.Contents.First().ReadAsByteArrayAsync();

                    response.Content = new ObjectContent <MediabankEntity>(_mediabank.SaveFile(fileData, name, mediabankFile), new JsonMediaTypeFormatter());
                });
            }

            return(response);
        }
Ejemplo n.º 8
0
        private void GenerageVideoThumbnail(MediabankEntity file, string fullFileName, string fileName, int percentIntoVideo = 50)
        {
            try
            {
                var   ffMpeg             = new NReco.VideoConverter.FFMpegConverter();
                float thumbnailTimeStart = 0;

                var ffp       = new NReco.VideoInfo.FFProbe();
                var videoInfo = ffp.GetMediaInfo(fullFileName);

                thumbnailTimeStart = (float)((videoInfo.Duration.TotalSeconds * percentIntoVideo) / 100);

                string newFullFileName = $@"{fullFileName.Replace(file.FileExtension, string.Empty)}_Thumbnail.jpg";

                ffMpeg.GetVideoThumbnail(fullFileName, newFullFileName, thumbnailTimeStart);

                file.Thumbnail = $@"/Uploads/Mediabank/{file.ClubId}/{fileName.Replace(file.FileExtension, string.Empty)}_Thumbnail.jpg";
            }
            catch (Exception ex)
            {
                LogHelper.LogError($"Error generating video thumbnail.", ex, file.ClubId);
            }
        }
Ejemplo n.º 9
0
        private MediabankEntity MapMediabankEntity(MediabankFile entity)
        {
            MediabankEntity mediabankEntity = null;

            if (entity != null)
            {
                mediabankEntity = new MediabankEntity()
                {
                    ClubId          = entity.ClubId,
                    CreatedById     = entity.CreatedBy,
                    CreatedDate     = entity.CreatedDate,
                    Description     = entity.Description,
                    FileExtension   = entity.FileExtension,
                    FileType        = entity.FileType,
                    FileUrl         = entity.FileUrl,
                    Id              = entity.Id,
                    Name            = entity.Name,
                    Thumbnail       = entity.Thumbnail,
                    LimitFileAccess = entity.LimitFileAccess
                };
            }

            return(mediabankEntity);
        }
Ejemplo n.º 10
0
        private MediabankFile MapMediabankFile(MediabankEntity file)
        {
            MediabankFile mbFile = null;

            if (file != null)
            {
                mbFile = new MediabankFile()
                {
                    ClubId          = file.ClubId,
                    CreatedBy       = file.CreatedById,
                    CreatedDate     = DateTime.Now,
                    Description     = file.Description,
                    FileExtension   = file.FileExtension,
                    FileType        = file.FileType,
                    FileUrl         = file.FileUrl,
                    Name            = file.Name,
                    Thumbnail       = file.Thumbnail,
                    Id              = file.Id,
                    LimitFileAccess = file.LimitFileAccess
                };
            }

            return(mbFile);
        }
Ejemplo n.º 11
0
        public bool UpdateMediabankFile(MediabankEntity file)
        {
            MediabankFile mediabankFile = MapMediabankFile(file);

            return(MediabankDAL.UpdateMediabankFile(mediabankFile));
        }