Esempio n. 1
0
        /// <summary>
        /// Get file content
        /// </summary>
        /// <param name="target">Target</param>
        /// <param name="isDownload">Download file</param>
        /// <returns>Response result</returns>
        FileCommandResult IConnectorDriver.File(string target, bool isDownload)
        {
            // Parse path
            var fullPath = ParsePath(target);

            // Create command result
            var commandResult = new FileCommandResult(
                fullPath.Info.FullName,
                MimeTypes.GetMimeType(fullPath.Info.Name),
                isDownload
                );

            // Check if path is directory
            if (fullPath.IsDirectory())
            {
                // Cannot download directory, must be a file
                commandResult.SetObjectNotFileError();

                // End processing
                return(commandResult);
            }

            // Check if path exists
            if (!fullPath.Info.Exists)
            {
                // Doesn't exist
                commandResult.SetFileNotFoundError();

                // End processing
                return(commandResult);
            }

            // Check if access is allowed
            if (fullPath.Root.IsShowOnly)
            {
                // Access denied, volume is for show only
                commandResult.SetAccessDeniedError();

                // End processing
                return(commandResult);
            }

            // Return result
            return(commandResult);
        }
Esempio n. 2
0
 public static IActionResult FileCommandResultToActionResult(this Controller _controller, FileCommandResult commandResult)
 {
     if (commandResult.IsSuccess)
     {
         var video = (Domain.Entities.Video)commandResult.Data;
         return(new FileContentResult(commandResult.File.ToArray(), "application/octet-stream")
         {
             FileDownloadName = $"{video.FileName}",
         });
     }
     else
     {
         return(_controller.BadRequest(commandResult));
     }
 }