public ConvertingSettings(ISignatureLibrary personSignature, PdfNamingType pdfNamingType, ColorPrintType colorPrintType, bool useDefaultSignature) { PersonSignature = personSignature; PdfNamingType = pdfNamingType; ColorPrintType = colorPrintType; UseDefaultSignature = useDefaultSignature; }
/// <summary> /// Конвертировать ячейку Microstation в Jpeg /// </summary> private ISignatureFileData ToJpegByte(IElementMicrostation cellSignature, ISignatureLibrary signatureLibraryBase) => GetSignatureFileSavePath(signatureLibraryBase). Void(filePath => cellSignature.DrawToEmfFile(GetSignatureFileSavePath(signatureLibraryBase), ProjectSignatureSettings.JpegPixelSize.Width, ProjectSignatureSettings.JpegPixelSize.Height)). Map(filePathEmf => new SignatureFileData(signatureLibraryBase.PersonId, signatureLibraryBase.PersonInformation, JpegConverter.ToJpegFromEmf(filePathEmf), false). Void(_ => _fileSystemOperations.DeleteFile(filePathEmf))). Void(_ => cellSignature.Remove());
/// <summary> /// Преобразовать имя с идентификатором и подписью в класс модуля конвертации /// </summary> public static ISignatureLibraryApp ToApplication(this ISignatureLibrary signatureFile) => SignatureLibraryConverter.ToSignatureLibraryApplication(signatureFile);
/// <summary> /// Получить имя для сохранения подписи /// </summary> private static string GetSignatureFileSavePath(ISignatureLibrary signatureLibraryBase) => ProjectSignatureSettings.SignaturesSaveFolder + Path.DirectorySeparatorChar + signatureLibraryBase.PersonId + ".emf";
/// <summary> /// Сохранить изображение элемента ячейки Microstation /// </summary> private IResultValue <ISignatureFileData> CreateJpegFromCell(IModelMicrostation modelMicrostation, ISignatureLibrary signatureLibraryBase) => _applicationMicrostation.CreateCellElementFromLibrary(signatureLibraryBase.PersonId, new PointMicrostation(0, 0), modelMicrostation). ResultVoidOk(cellElement => cellElement.LineWeight = 7). ToResultValueFromApplication(). ResultVoidOk(_ => _messagingService.ShowMessage($"Обработка подписи {signatureLibraryBase.PersonInformation.FullName}")). ResultValueOk(cellSignature => ToJpegByte(cellSignature, signatureLibraryBase));
/// <summary> /// Преобразовать имя с идентификатором в класс модуля конвертации /// </summary> public static ISignatureLibraryApp ToSignatureLibraryApplication(ISignatureLibrary signatureLibraryBase) => (signatureLibraryBase != null) ? new SignatureLibraryApp(signatureLibraryBase.PersonId, ToPersonInformationApp(signatureLibraryBase.PersonInformation)) : throw new ArgumentNullException(nameof(signatureLibraryBase));