public async Task <FileUploadResultInfo> UploadFileManager(IFormFile file)
        {
            if (file == null || file.Length == 0)
            {
                return(null);
            }
            // Get root upload
            Request.Headers.TryGetValue("UploadRootPath", out var uploadRootPath);
            var host        = Request.Host.Host;
            var scheme      = Request.Scheme;
            var port        = Request.Host.Port;
            var currentDate = DateTime.Now;

            var root = uploadRootPath.FirstOrDefault() ?? Path.Combine(FileConstants.FileManagerRootPath, currentDate.Year.ToString(), currentDate.Month.ToString(), currentDate.Day.ToString());

            if (!Directory.Exists(root))
            {
                Directory.CreateDirectory(root);
            }
            var fileResultInfo = new FileUploadResultInfo();
            var fileExt        = Path.GetExtension(file.FileName);
            var newFileName    = FileHelper.GetRandomFileName(fileExt);
            var path           = Path.Combine(root, newFileName);


            using (var stream = new FileStream(path, FileMode.Create))
            {
                await file.CopyToAsync(stream);
            }

            // Convert doc To Image
            if (fileExt.ToLower() == ".doc" || fileExt.ToLower() == ".docx")
            {
                FileHelper.ConvertDocToImage(root, newFileName);
            }

            // Convert pdf To Image
            if (fileExt.ToLower() == ".pdf")
            {
                var result = FileHelper.ConvertPdfToImage(root, newFileName);
                if (result.Count > 0)
                {
                    result.ToList().ForEach(item =>
                    {
                        FileHelper.GetThumbnailImage(root, item.FileName, 3);
                        item.FilePath = $"{scheme}://{host}/{ item.FilePath.Replace("wwwroot/", "")}";
                    });
                    return(result.FirstOrDefault());
                }
            }
            fileResultInfo.FileName = newFileName;
            //Dev
            //fileResultInfo.FilePath = $"{scheme}://{host}:{port}/{ path.Replace("wwwroot/", "")}";
            //Product
            fileResultInfo.FilePath = $"{scheme}://{host}/{ path.Replace("wwwroot/", "")}";

            return(fileResultInfo);
        }
        public async Task <FileUploadResultInfo> UploadTempFile(IFormFile file)
        {
            if (file == null || file.Length == 0)
            {
                return(null);
            }

            var fileResultInfo = new FileUploadResultInfo();
            var extension      = Path.GetExtension(file.FileName);
            var path           = FileHelper.GetTempFilePath(extension);

            using (var stream = new FileStream(path, FileMode.Create))
            {
                await file.CopyToAsync(stream);
            }

            fileResultInfo.FileName = Path.GetFileName(path);
            fileResultInfo.FilePath = path;

            return(fileResultInfo);
        }