private string GetVideoFileName()
        {
            FileDirectoryOperations.OriginalFileName = MediaFileName;

            string legalChars = @"^[a-zA-Z0-9._]+$";

            if (Regex.IsMatch(MediaFileName, legalChars, RegexOptions.IgnoreCase))
            {
                return(MediaFileName);
            }
            else
            {
                log.Warn($"Filename: {MediaFileName} contains illegal chars");
                char[] c           = MediaFileName.ToCharArray();
                var    tmpFileName = new StringBuilder();

                foreach (char ch in c)
                {
                    if (!Regex.IsMatch(ch.ToString(), legalChars, RegexOptions.IgnoreCase))
                    {
                        log.Warn($"Replacing illegal char: {ch} with _");
                        tmpFileName.Append(ch.ToString().Replace(ch.ToString(), "_"));
                    }
                    else
                    {
                        tmpFileName.Append(ch);
                    }
                }
                log.Warn($"New destination file name: {tmpFileName}, Original filename: {MediaFileName}");
                return(tmpFileName.ToString());
            }
        }
 /// <summary>Snippet for GetMediaFile</summary>
 /// <remarks>
 /// This snippet has been automatically generated for illustrative purposes only.
 /// It may require modifications to work in your environment.
 /// </remarks>
 public void GetMediaFileResourceNames()
 {
     // Create client
     MediaFileServiceClient mediaFileServiceClient = MediaFileServiceClient.Create();
     // Initialize request argument(s)
     MediaFileName resourceName = MediaFileName.FromCustomerMediaFile("[CUSTOMER]", "[MEDIA_FILE]");
     // Make the request
     MediaFile response = mediaFileServiceClient.GetMediaFile(resourceName);
 }
        /// <summary>Snippet for GetMediaFileAsync</summary>
        /// <remarks>
        /// This snippet has been automatically generated for illustrative purposes only.
        /// It may require modifications to work in your environment.
        /// </remarks>
        public async Task GetMediaFileResourceNamesAsync()
        {
            // Create client
            MediaFileServiceClient mediaFileServiceClient = await MediaFileServiceClient.CreateAsync();

            // Initialize request argument(s)
            MediaFileName resourceName = MediaFileName.FromCustomerMediaFile("[CUSTOMER]", "[MEDIA_FILE]");
            // Make the request
            MediaFile response = await mediaFileServiceClient.GetMediaFileAsync(resourceName);
        }
 /// <summary>Snippet for GetMediaFile</summary>
 public void GetMediaFileResourceNames()
 {
     // Snippet: GetMediaFile(MediaFileName, CallSettings)
     // Create client
     MediaFileServiceClient mediaFileServiceClient = MediaFileServiceClient.Create();
     // Initialize request argument(s)
     MediaFileName resourceName = MediaFileName.FromCustomerMediaFile("[CUSTOMER_ID]", "[MEDIA_FILE_ID]");
     // Make the request
     MediaFile response = mediaFileServiceClient.GetMediaFile(resourceName);
     // End snippet
 }
 /// <summary>Snippet for GetMediaFile</summary>
 /// <remarks>
 /// This snippet has been automatically generated for illustrative purposes only.
 /// It may require modifications to work in your environment.
 /// </remarks>
 public void GetMediaFileRequestObject()
 {
     // Create client
     MediaFileServiceClient mediaFileServiceClient = MediaFileServiceClient.Create();
     // Initialize request argument(s)
     GetMediaFileRequest request = new GetMediaFileRequest
     {
         ResourceNameAsMediaFileName = MediaFileName.FromCustomerMediaFile("[CUSTOMER_ID]", "[MEDIA_FILE_ID]"),
     };
     // Make the request
     MediaFile response = mediaFileServiceClient.GetMediaFile(request);
 }
        /// <summary>Snippet for GetMediaFileAsync</summary>
        public async Task GetMediaFileResourceNamesAsync()
        {
            // Snippet: GetMediaFileAsync(MediaFileName, CallSettings)
            // Additional: GetMediaFileAsync(MediaFileName, CancellationToken)
            // Create client
            MediaFileServiceClient mediaFileServiceClient = await MediaFileServiceClient.CreateAsync();

            // Initialize request argument(s)
            MediaFileName resourceName = MediaFileName.FromCustomerMediaFile("[CUSTOMER_ID]", "[MEDIA_FILE_ID]");
            // Make the request
            MediaFile response = await mediaFileServiceClient.GetMediaFileAsync(resourceName);

            // End snippet
        }
        public async Task GetMediaFileAsync()
        {
            Mock <MediaFileService.MediaFileServiceClient> mockGrpcClient = new Mock <MediaFileService.MediaFileServiceClient>(MockBehavior.Strict);
            GetMediaFileRequest expectedRequest = new GetMediaFileRequest
            {
                ResourceName = new MediaFileName("[CUSTOMER]", "[MEDIA_FILE]").ToString(),
            };
            MediaFile expectedResponse = new MediaFile
            {
                ResourceName = "resourceName2625949903",
            };

            mockGrpcClient.Setup(x => x.GetMediaFileAsync(expectedRequest, It.IsAny <CallOptions>()))
            .Returns(new Grpc.Core.AsyncUnaryCall <MediaFile>(Task.FromResult(expectedResponse), null, null, null, null));
            MediaFileServiceClient client   = new MediaFileServiceClientImpl(mockGrpcClient.Object, null);
            string    formattedResourceName = new MediaFileName("[CUSTOMER]", "[MEDIA_FILE]").ToString();
            MediaFile response = await client.GetMediaFileAsync(formattedResourceName);

            Assert.AreEqual(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
        public void GetMediaFile()
        {
            Mock <MediaFileService.MediaFileServiceClient> mockGrpcClient = new Mock <MediaFileService.MediaFileServiceClient>(MockBehavior.Strict);
            GetMediaFileRequest expectedRequest = new GetMediaFileRequest
            {
                ResourceName = new MediaFileName("[CUSTOMER]", "[MEDIA_FILE]").ToString(),
            };
            MediaFile expectedResponse = new MediaFile
            {
                ResourceName = "resourceName2625949903",
            };

            mockGrpcClient.Setup(x => x.GetMediaFile(expectedRequest, It.IsAny <CallOptions>()))
            .Returns(expectedResponse);
            MediaFileServiceClient client   = new MediaFileServiceClientImpl(mockGrpcClient.Object, null);
            string    formattedResourceName = new MediaFileName("[CUSTOMER]", "[MEDIA_FILE]").ToString();
            MediaFile response = client.GetMediaFile(formattedResourceName);

            Assert.AreEqual(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
Пример #9
0
    /// <summary>
    /// Provides operations necessary to create and store new library file.
    /// </summary>
    private void HandleLibrariesUpload()
    {
        // Get related library info
        if (LibraryInfo != null)
        {
            MediaFileInfo mediaFile = null;

            // Get the site name
            SiteInfo si       = SiteInfoProvider.GetSiteInfo(LibraryInfo.LibrarySiteID);
            string   siteName = (si != null) ? si.SiteName : SiteContext.CurrentSiteName;

            string message = string.Empty;
            try
            {
                // Check the allowed extensions
                CheckAllowedExtensions();

                if (MediaFileID > 0)
                {
                    #region "Check permissions"

                    if (!MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(LibraryInfo, "FileModify"))
                    {
                        throw new Exception(GetString("media.security.nofilemodify"));
                    }

                    #endregion


                    mediaFile = MediaFileInfoProvider.GetMediaFileInfo(MediaFileID);
                    if (mediaFile != null)
                    {
                        // Ensure object version
                        SynchronizationHelper.EnsureObjectVersion(mediaFile);

                        if (IsMediaThumbnail)
                        {
                            string newFileExt = Path.GetExtension(ucFileUpload.FileName).TrimStart('.');
                            if ((ImageHelper.IsImage(newFileExt)) && (newFileExt.ToLowerCSafe() != "ico") &&
                                (newFileExt.ToLowerCSafe() != "wmf"))
                            {
                                // Update or creation of Media File update
                                string previewSuffix = MediaLibraryHelper.GetMediaFilePreviewSuffix(siteName);

                                if (!String.IsNullOrEmpty(previewSuffix))
                                {
                                    string previewExtension = Path.GetExtension(ucFileUpload.PostedFile.FileName);
                                    string previewName      = Path.GetFileNameWithoutExtension(MediaLibraryHelper.GetPreviewFileName(mediaFile.FileName, mediaFile.FileExtension, previewExtension, siteName, previewSuffix));
                                    string previewFolder    = DirectoryHelper.CombinePath(Path.EnsureSlashes(LibraryFolderPath.TrimEnd('/')), MediaLibraryHelper.GetMediaFileHiddenFolder(siteName));

                                    byte[] previewFileBinary = new byte[ucFileUpload.PostedFile.ContentLength];
                                    ucFileUpload.PostedFile.InputStream.Read(previewFileBinary, 0, ucFileUpload.PostedFile.ContentLength);

                                    // Delete current preview thumbnails
                                    MediaFileInfoProvider.DeleteMediaFilePreview(siteName, mediaFile.FileLibraryID, mediaFile.FilePath);

                                    // Save preview file
                                    MediaFileInfoProvider.SaveFileToDisk(siteName, LibraryInfo.LibraryFolder, previewFolder, previewName, previewExtension, mediaFile.FileGUID, previewFileBinary, false, false);

                                    // Log synchronization task
                                    SynchronizationHelper.LogObjectChange(mediaFile, TaskTypeEnum.UpdateObject);
                                }

                                // Drop the cache dependencies
                                CacheHelper.TouchKeys(MediaFileInfoProvider.GetDependencyCacheKeys(mediaFile, true));
                            }
                            else
                            {
                                message = GetString("media.file.onlyimgthumb");
                            }
                        }
                        else
                        {
                            // Get folder path
                            string path = Path.GetDirectoryName(DirectoryHelper.CombinePath(MediaLibraryInfoProvider.GetMediaLibraryFolderPath(LibraryInfo.LibraryID), mediaFile.FilePath));

                            // If file system permissions are sufficient for file update
                            if (DirectoryHelper.CheckPermissions(path, false, true, true, true))
                            {
                                // Delete existing media file
                                MediaFileInfoProvider.DeleteMediaFile(LibraryInfo.LibrarySiteID, LibraryInfo.LibraryID, mediaFile.FilePath, true);

                                // Update media file preview
                                if (MediaLibraryHelper.HasPreview(siteName, LibraryInfo.LibraryID, mediaFile.FilePath))
                                {
                                    // Get new unique file name
                                    string newName = URLHelper.GetSafeFileName(ucFileUpload.PostedFile.FileName, siteName);

                                    // Get new file path
                                    string newPath = DirectoryHelper.CombinePath(path, newName);
                                    newPath = MediaLibraryHelper.EnsureUniqueFileName(newPath);
                                    newName = Path.GetFileName(newPath);

                                    // Rename preview
                                    MediaLibraryHelper.MoveMediaFilePreview(mediaFile, newName);

                                    // Delete preview thumbnails
                                    MediaFileInfoProvider.DeleteMediaFilePreviewThumbnails(mediaFile);
                                }

                                // Receive media info on newly posted file
                                mediaFile = GetUpdatedFile(mediaFile);

                                // Save media file information
                                MediaFileInfoProvider.SetMediaFileInfo(mediaFile);
                            }
                            else
                            {
                                // Set error message
                                message = String.Format(GetString("media.accessdeniedtopath"), path);
                            }
                        }
                    }
                }
                else
                {
                    #region "Check permissions"

                    // Creation of new media file
                    if (!MediaLibraryInfoProvider.IsUserAuthorizedPerLibrary(LibraryInfo, "FileCreate"))
                    {
                        throw new Exception(GetString("media.security.nofilecreate"));
                    }

                    #endregion


                    // No file for upload specified
                    if (!ucFileUpload.HasFile)
                    {
                        throw new Exception(GetString("media.newfile.errorempty"));
                    }

                    // Create new media file record
                    mediaFile = new MediaFileInfo(ucFileUpload.PostedFile, LibraryID, LibraryFolderPath, ResizeToWidth, ResizeToHeight, ResizeToMaxSideSize, LibraryInfo.LibrarySiteID);

                    mediaFile.FileDescription = "";

                    // Save the new file info
                    MediaFileInfoProvider.SetMediaFileInfo(mediaFile);
                }
            }
            catch (Exception ex)
            {
                // Creation of new media file failed
                message = ex.Message;
            }
            finally
            {
                // Create media file info string
                string mediaInfo = "";
                if ((mediaFile != null) && (mediaFile.FileID > 0) && (IncludeNewItemInfo))
                {
                    mediaInfo = mediaFile.FileID + "|" + LibraryFolderPath.Replace('\\', '>').Replace("'", "\\'");
                }

                // Ensure message text
                message = HTMLHelper.EnsureLineEnding(message, " ");

                if (RaiseOnClick)
                {
                    ScriptHelper.RegisterStartupScript(Page, typeof(Page), "UploaderOnClick", ScriptHelper.GetScript("if (parent.UploaderOnClick) { parent.UploaderOnClick('" + MediaFileName.Replace(" ", "").Replace(".", "").Replace("-", "") + "'); }"));
                }

                string script = String.Format(@"
if (typeof(parent.DFU) !== 'undefined') {{ 
    parent.DFU.OnUploadCompleted('{0}'); 
}} 
if ((window.parent != null) && (/parentelemid={1}/i.test(window.location.href)) && (window.parent.InitRefresh_{1} != null)){{
    window.parent.InitRefresh_{1}({2}, false, '{3}'{4});
}}", QueryHelper.GetString("containerid", ""), ParentElemID, ScriptHelper.GetString(message.Trim()), mediaInfo, (InsertMode ? ", 'insert'" : ", 'update'"));

                // Call function to refresh parent window
                ScriptHelper.RegisterStartupScript(Page, typeof(Page), "RefreshParrent", ScriptHelper.GetScript(script));
            }
        }
    }