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))); }
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); }
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}"; }
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); }
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); }
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); } }
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); }
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); } }
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); }
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); }
public bool UpdateMediabankFile(MediabankEntity file) { MediabankFile mediabankFile = MapMediabankFile(file); return(MediabankDAL.UpdateMediabankFile(mediabankFile)); }