/// <summary> /// Получить строки с ответственным лицом/отделом без подписи /// </summary> private static IEnumerable <TSignatureField> GetStampSignatureRows <TSignatureField>(StampFieldType stampFieldType, Func <IEnumerable <string>, IResultAppValue <TSignatureField> > getSignatureField) where TSignatureField : IStampSignature => StampFieldSignatures.GetFieldsBySignatureType(stampFieldType). Select(getSignatureField). Where(resultSignature => resultSignature.OkStatus). Select(resultSignature => resultSignature.Value);
/// <summary> /// Функция вставки подписей из библиотеки /// </summary> protected Func <ISignatureLibraryApp, IResultAppValue <IStampFieldMicrostation> > InsertSignatureFunc (IElementMicrostation previousElement, IElementMicrostation nextElement, StampFieldType stampFieldType) => signatureLibrary => _insertSignatureByFields(signatureLibrary.PersonId, previousElement.AsTextElementMicrostation, nextElement.AsTextElementMicrostation). ResultValueOk(signature => new StampFieldMicrostation(signature, stampFieldType));
protected StampTextField(StampFieldType stampFieldType) : base(stampFieldType) { }
/// <summary> /// Получить строки штампа с подписью по их типу /// </summary> public static IEnumerable <IStampFieldSignature> GetRowFieldsBySignatureType(StampFieldType stampFieldType) => stampFieldType switch {
public StampTextNodeFieldMicrostation(ITextNodeElementMicrostation textElementStamp, StampFieldType stampFieldType) : base(textElementStamp, stampFieldType) { TextNodeElementStamp = textElementStamp ?? throw new ArgumentNullException(nameof(textElementStamp)); }
public StampTextFieldWord(ICellElementWord cellElementStamp, StampFieldType stampFieldType) : base(cellElementStamp, stampFieldType) { }
public StampFieldWord(ICellElementWord cellElementStamp, StampFieldType stampFieldType) : base(stampFieldType) { CellElementStamp = cellElementStamp ?? throw new ArgumentNullException(nameof(cellElementStamp)); }
/// <summary> /// Получить поля штампа согласно типу /// </summary> public IEnumerable <IStampTextFieldWord> GetFieldsByType(StampFieldType stampFieldType) => FieldsStamp.Where(field => field.StampFieldType == stampFieldType);
protected StampField(StampFieldType stampFieldType) { StampFieldType = stampFieldType; }
public StampFieldMicrostation(IElementMicrostation elementStamp, StampFieldType stampFieldType) : base(stampFieldType) { ElementStamp = elementStamp ?? throw new ArgumentNullException(nameof(elementStamp)); }
/// <summary> /// Получить поля штампа на основе элементов Microstation /// </summary> public IStampTextFieldMicrostation GetFieldFromElements(IEnumerable <ITextElementMicrostation> elementsMicrostation, HashSet <StampFieldBase> stampFields, StampFieldType stampFieldType) => elementsMicrostation. Where(element => stampFields.Select(field => field.Name). Contains(element.AttributeControlName)). Select(field => new StampTextFieldMicrostation(field, stampFieldType)). FirstOrDefault();