public OwnerMicrostation(IModelMicrostation modelMicrostation) { ModelMicrostation = modelMicrostation ?? throw new ArgumentNullException(nameof(modelMicrostation)); }
/// <summary> /// Создать ячейку на основе шаблона в библиотеке /// </summary> public IResultAppValue <ICellElementMicrostation> CreateSignatureFromLibrary(string cellName, PointMicrostation origin, IModelMicrostation modelMicrostation, Func <ICellElementMicrostation, ICellElementMicrostation> additionalParameters = null) => AttachLibrary(MicrostationResources.SignatureMicrostationFileName). ResultValueOkBind(libraryElements => CreateCellElementFromLibrary(cellName, origin, modelMicrostation, additionalParameters)). ResultVoidOk(_ => DetachLibrary());
/// <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 IResultAppValue <ICellElementMicrostation> CreateCellElementFromLibrary(string cellName, PointMicrostation origin, IModelMicrostation modelMicrostation, Func <ICellElementMicrostation, ICellElementMicrostation> additionalParameters = null) { var cellElement = _application.CreateCellElement2(StringIdPrepare(cellName), _application.Point3dFromXY(origin.X, origin.Y), _application.Point3dFromXY(1, 1), false, _application.Matrix3dIdentity()); var cellDefaultOrigin = new CellElementMicrostation(cellElement, modelMicrostation.ToOwnerMicrostation()); var cellElementMicrostation = additionalParameters?.Invoke(cellDefaultOrigin) ?? cellDefaultOrigin; _application.ActiveDesignFile.Models[modelMicrostation.IdName].AddElement((Element)cellElement); return(new ResultAppValue <ICellElementMicrostation>(cellElementMicrostation, new ErrorApplication(ErrorApplicationType.SignatureNotFound, "Элемент подписи не найден"))); }