/// <summary> /// Перенос ошибочных файлов /// </summary> public void MoveFileToErrorFolder() { foreach (var file in Directory.GetFiles(FolderTypeHelper.GetPath(FolderTypeHelper.Processed))) { File.Move(file, string.Format("{0}\\{1}", FolderTypeHelper.GetPath(FolderTypeHelper.Error), new FileInfo(file).Name)); } }
/// <summary> /// Перенос файла из папки в папку /// </summary> public void MoveFilesToProcessingFolder() { foreach (var file in Directory.GetFiles(FolderTypeHelper.GetPath(FolderTypeHelper.InComing))) { try { File.Move(file, string.Format("{0}\\{1}", FolderTypeHelper.GetPath(FolderTypeHelper.Processed), new FileInfo(file).Name)); } catch (Exception ex) { Serilog.Log.Error(ex, ex.Message); RollbackFiles(FolderTypeHelper.GetPath(FolderTypeHelper.Processed), FolderTypeHelper.GetPath(FolderTypeHelper.InComing)); throw ex; } } }
/// <summary> /// Проверить консистентность данных /// </summary> public void CheckConsistencyData() { try { foreach (var file in Directory.GetFiles(FolderTypeHelper.GetPath(FolderTypeHelper.Processed)).Select(e => new FileInfo(e))) { using (var package = new ExcelPackage(file)) { foreach (var worksheet in package.Workbook.Worksheets) { ValidationData(worksheet, worksheet.Dimension.Start.Row, worksheet.Dimension.End.Column); } } } } catch (Exception ex) { Serilog.Log.Error(ex, ex.Message); _readerFileService.MoveFileToErrorFolder(); throw ex; } }
/// <summary> /// Сохранить файл на диск /// </summary> /// <param name="file">Файл</param> /// <returns></returns> public async Task <FileUploadResult> SaveFile(IFormFile file) { string error = _fileValidatorService.ValidateUploadedFile(file); if (!string.IsNullOrEmpty(error)) { return(new FileUploadResult() { Error = error, Success = false, }); } using (var fileStream = new FileStream($"{FolderTypeHelper.GetPath(FolderTypeHelper.InComing)}\\{file.FileName}", FileMode.Create)) { await file.CopyToAsync(fileStream); return(new FileUploadResult() { Error = null, Success = true, }); } }
public FileHandlerService(IFileValidatorService fileValidatorService) { _fileValidatorService = fileValidatorService; FolderTypeHelper.InitializeDirectories($"{Directory.GetParent(Directory.GetCurrentDirectory())}"); }
/// <summary> /// Проверка файлов на наличии в директории /// </summary> /// <returns></returns> public bool HasFiles() { return(Directory.GetFiles(FolderTypeHelper.GetPath(FolderTypeHelper.InComing)).Any()); }