/// <summary> /// Получить строки с согласованием с директорами для опросных листов и технических требований /// </summary> private IResultAppCollection <IStampApprovalChief> GetStampApprovalChiefRowsChecked() => _tableApprovalChief. ResultValueOk(table => table.RowsElementWord). ToResultCollection(new ErrorApplication(ErrorApplicationType.FieldNotFound, "Строки согласования с директорами не найдены")). ResultValueOk(rows => rows.Where(row => row.CellsElement.Count == ApprovalChiefSignatureWord.FIELDS_COUNT)). ResultValueOkBind(rows => rows. Where(row => ConverterDepartmentTypeApp.HasDepartmentType(row.CellsElement[ApprovalChiefRowIndexes.DEPARTMENT].Text)). Select(GetStampApprovalChiefFromRow). ToResultCollection()). ResultValueBad(rows => new List <IStampApprovalChief>()). ToResultCollection();
/// <summary> /// Получить класс с ответственным лицом и подписью по строке Word для строк согласования тех требований с директорами /// </summary> private IResultAppValue <IStampApprovalChief> GetStampApprovalChiefFromRow(IRowElementWord approvalChiefRow) => ConverterDepartmentTypeApp.DepartmentParsing(approvalChiefRow.CellsElement[ApprovalChiefRowIndexes.DEPARTMENT].Text). Map(departmentType => SignaturesSearching.FindByFullNameOrRandom(approvalChiefRow.CellsElement[ApprovalChiefRowIndexes.RESPONSIBLE_PERSON].MaxLengthWord, departmentType)). ResultValueOk(signature => GetStampApprovalChiefFromFields(approvalChiefRow, signature, _stampIdentifier));