Пример #1
0
 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));
Пример #6
0
 /// <summary>
 /// Преобразовать имя с идентификатором в класс модуля конвертации
 /// </summary>
 public static ISignatureLibraryApp ToSignatureLibraryApplication(ISignatureLibrary signatureLibraryBase) =>
 (signatureLibraryBase != null)
         ? new SignatureLibraryApp(signatureLibraryBase.PersonId, ToPersonInformationApp(signatureLibraryBase.PersonInformation))
         : throw new ArgumentNullException(nameof(signatureLibraryBase));