/// <summary> /// Найти скан документа. /// </summary> /// <param name="findModel">Запись перечня.</param> /// <param name="folder">Папка для поиска.</param> /// <param name="isAct">Является ли искомы документ актом</param> public static void FindAndSetScan(IMatchingResult findModel, string folder, bool isAct = false) { if (!Directory.Exists(folder)) { return; } var filePathes = Directory.GetFiles(folder); findModel.ScanFileNameVariants = filePathes; foreach (var filePath in filePathes) { var fileName = Path.GetFileNameWithoutExtension(filePath); if (isAct && fileName.Contains("ИС")) { continue; } var findFileName = GetDigitsFromText(fileName); if (string.IsNullOrEmpty(findFileName)) { continue; } string findDocNumber = GetDigitsFromText(findModel.DocNumber); if (findFileName.Contains(findDocNumber) || findDocNumber.Contains(findFileName)) { SetScanFile(findModel, filePath); SetNewDocName(findModel); SetNewFileName(findModel); } } }
/// <summary> /// Назначить новый файл со сканом. /// </summary> /// <param name="matchingResult">Модель данных.</param> /// <param name="scanFilePath">Имя файла.</param> public static void SetScanFile(IMatchingResult matchingResult, string scanFilePath) { matchingResult.ScanFileName = scanFilePath; matchingResult.FileExtension = Path.GetExtension(scanFilePath); if (string.IsNullOrEmpty(matchingResult.NewDocName)) { matchingResult.NewDocName = Path.GetFileNameWithoutExtension(scanFilePath); SetNewFileName(matchingResult); } }
/// <summary> /// Установить новое имя файла. /// </summary> /// <param name="matchingResult"></param> public static void SetNewFileName(IMatchingResult matchingResult) { var newFileName = $"Стр. {matchingResult.PageNumber}. " + $"{matchingResult.NewDocName}" + $"{matchingResult.FileExtension}"; var invalidChars = Path.GetInvalidFileNameChars(); foreach (char c in invalidChars) { newFileName = newFileName.Replace(c, '_'); } matchingResult.NewFileName = newFileName; }
/// <summary> /// Установить новое имя документа. /// </summary> /// <param name="matchingResult"></param> /// <param name="scanFilePath"></param> public static void SetNewDocName(IMatchingResult matchingResult) { var newDocName = DocNameDictionaryService.GetShortName(matchingResult.DocName); if (!string.IsNullOrEmpty(newDocName)) { matchingResult.NewDocName = newDocName + " № " + matchingResult.DocNumber; } else { var scanFilePath = matchingResult.ScanFileName; if (scanFilePath == null) { return; } matchingResult.NewDocName = Path.GetFileNameWithoutExtension(scanFilePath); } }