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));
 }
Пример #2
0
        /// <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,
                                                                                  "Диапазон подписи не найден")));
        }
Пример #3
0
 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);
Пример #9
0
 /// <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;