public SignaturesBuilder(IResultAppCollection <IStampPerson> stampPersons, IResultAppCollection <IStampChange> stampChanges, IResultAppCollection <IStampApproval> stampApproval, IResultAppCollection <IStampApprovalChange> stampApprovalsChange, IResultAppCollection <IStampApprovalPerformers> stampApprovalsPerformers, IResultAppCollection <IStampApprovalChief> stampApprovalsChief) { StampPersons = stampPersons ?? throw new ArgumentNullException(nameof(stampPersons)); StampChanges = stampChanges ?? throw new ArgumentNullException(nameof(stampChanges)); StampApprovals = stampApproval ?? throw new ArgumentNullException(nameof(stampApproval)); StampApprovalsChange = stampApprovalsChange ?? throw new ArgumentNullException(nameof(stampApprovalsChange)); StampApprovalsPerformers = stampApprovalsPerformers ?? throw new ArgumentNullException(nameof(stampApprovalsPerformers)); StampApprovalsChief = stampApprovalsChief ?? throw new ArgumentNullException(nameof(stampApprovalsChief)); }
/// <summary> /// Получить координаты и размеры поля для вставки подписей /// </summary> public static IResultAppValue <RangeMicrostation> GetSignatureRange(IResultAppCollection <ILineElementMicrostation> linesStamp, ITextElementMicrostation previousField, ITextElementMicrostation nextField, bool isVertical) { ILineElementMicrostation leftLine = null; ILineElementMicrostation rightLine = null; ILineElementMicrostation topLine = null; ILineElementMicrostation bottomLine = null; foreach (var lineStamp in linesStamp.Value) { if (ValidateLeftRange(lineStamp, leftLine, previousField, isVertical)) { leftLine = lineStamp; } if (ValidateTopRange(lineStamp, topLine, nextField, isVertical)) { topLine = lineStamp; } if (ValidateRightRange(lineStamp, rightLine, nextField, isVertical)) { rightLine = lineStamp; } if (ValidateBottomRange(lineStamp, bottomLine, previousField, isVertical)) { bottomLine = lineStamp; } } return((leftLine != null && rightLine != null && topLine != null && bottomLine != null) ? new RangeMicrostation(new PointMicrostation(leftLine.StartPoint.X, bottomLine.StartPoint.Y), new PointMicrostation(rightLine.StartPoint.X, topLine.StartPoint.Y)). Map(range => new ResultAppValue <RangeMicrostation>(range)) : new ResultAppValue <RangeMicrostation>(new ErrorApplication(ErrorApplicationType.RangeNotValid, "Диапазон подписи не найден"))); }
public StampContainer(IResultAppCollection <IStamp> stamps, StampContainerType stampContainerType) { _stamps = stamps ?? throw new ArgumentNullException(nameof(stamps)); StampContainerType = stampContainerType; }
/// <summary> /// Преобразовать в другой подтип /// </summary> public static IResultAppCollection <TBase> Cast <TDerived, TBase>(this IResultAppCollection <TDerived> resultDerived) where TDerived : class, TBase => resultDerived != null ? new ResultAppCollection <TBase>(resultDerived.Value.Cast <TBase>(), resultDerived.Errors) : throw new ArgumentNullException(nameof(resultDerived));
/// <summary> /// Преобразовать результирующий ответ модуля конвертации с коллекцией в основной /// </summary> public static IResultCollection <TValue> ToResultCollectionFromApplication <TValue>(this IResultAppCollection <TValue> resultApplication) => ResultApplicationConverter.ToResultCollection(resultApplication);
/// <summary> /// Получить стандартную подпись при отсутствии основных строк /// </summary> private ISignatureLibraryApp GetPersonSignature(IResultAppCollection <IStampPerson> personRows) => personRows.Value?.FirstOrDefault()?.SignatureLibrary ?? SignaturesSearching.FindById(StampSettings.PersonId);
/// <summary> /// Преобразовать результирующий ответ модуля конвертации с коллекцией в основной /// </summary> public static IResultCollection <TValue> ToResultCollection <TValue>(IResultAppCollection <TValue> resultApplicationCollection) => resultApplicationCollection?. Map(result => new ResultCollection <TValue>(result.Value.Select(value => value), result.Errors.ToErrorsConverting())) ?? throw new ArgumentNullException(nameof(resultApplicationCollection));
/// <summary> /// Добавить строки согласования для извещения с изменениями /// </summary> public SignaturesBuilder AddStampApprovalsChange(IResultAppCollection <IStampApprovalChange> stampApprovalsChange) => new SignaturesBuilder(StampPersons, StampChanges, StampApprovals, stampApprovalsChange, StampApprovalsPerformers, StampApprovalsChief);
/// <summary> /// Добавить ответ с коллекцией /// </summary> public IResultAppCollection <T> ConcatResult(IResultAppCollection <T> resultCollection) => resultCollection != null ? new ResultAppCollection <T>(Value.Union(resultCollection.Value), Errors.Union(resultCollection.Errors ?? Enumerable.Empty <IErrorApplication>())) : this;