示例#1
0
        /// <summary>
        /// Обработка одного файла по урлу
        /// </summary>
        /// <param name="url">URL файла</param>
        /// <returns></returns>
        public async Task <Document> ProcessFileByUrl(string url)
        {
            var config = _config.GetSection("Processor").Get <ProcessorConfig>();

            var file = await _fileGetter.GetFile(url);

            if (file == null)
            {
                throw new Exception($"Не удалось загрузить файл {url}");
            }

            if (string.IsNullOrWhiteSpace(file.FileName))
            {
                throw new Exception($"Не удалось определить имя файла по урлу {url}");
            }

            var result = await ProcessFile(file.Bytes, file.FileName);

            result.FileUrl = url;

            string savePath;

            if (result.DocumentContent.DocumentType != DocumentType.Unknown)
            {
                savePath = await SaveFile(Path.Combine(config.BaseDirectory, SUCCESS_FOLDER, file.Host), file);
            }
            else
            {
                savePath = await SaveFile(Path.Combine(config.BaseDirectory, FAIL_FOLDER, file.Host), file);
            }

            result.FilePath = savePath;
            return(result);
        }
示例#2
0
        public async Task <IActionResult> DownloadFile(string fileExtension)
        {
            var path = GetFilePath();

            var(fileType, fileData, fileName) = await _fileGetter.GetFile(path, fileExtension);

            return(File(fileData, fileType, fileName));
        }