Show / Hide Table of Contents

Class TypedQueryProviderBase<RowType, RootExtender>

Base class for single-query providers that have strongly typed archive rows. It contains declarations and methods to set up one main extender, get the standard column names from the row type, and set standard entity-based navigation hints if no other hints have been set.

Inheritance
object
ExtensibleColumnsBase
QueryProviderBase<RowType>
TypedQueryProviderBase<RowType, RootExtender>
ActivityProviderBase<RootExtender>
AppointmentAcceptedNotificationSubProvider
AppointmentCancelledNotificationSubProvider
AppointmentFavouritesProvider
AppointmentNewNotificationSubProvider
AppointmentNotificationAggregatorProvider
AppointmentRejectedNotificationSubProvider
AppointmentUpdatedNotificationSubProvider
AppointmentSelectionStaticProvider
DocumentSelectionStaticProvider
DummySelectionContactProvider
DynamicSelectionProviderBaseV2<RowType, RootExtender, TableInfoType>
DynamicSelectionProviderBase<RowType, RootExtender>
ProjectSelectionStaticProvider
QuoteLineSelectionStaticProvider
SaleSelectionStaticProvider
TicketSelectionStaticProvider
AssociateProjectsProvider
BatchTaskProvider
ChatSessionProvider
ConfigurableArchiveProjectProvider
ConsentPurposeProvider
ContactFavouritesProvider
ContactProjectsProvider
ContactProvider
DocumentFavouritesProvider
DocumentQuoteLineInnerDataProvider
DotSyntaxProvider
EMailItemProvider
EjscriptsProvider
EmailAddressProviderBase
EmailFlowFolderProvider
EmailFlowFormContentProvider
EmailFlowInstanceProvider
EmailFlowProvider
EmailFlowSMessageContentProvider
ErpConnectionProvider
ErpConnectorProvider
EventHandlersProvider
ExistingCategoryMembersProvider
ExternalDocumentFolderProvider
ExternalDocumentItemsProvider
ExternalPersonsProvider
FindProviderBase<RowType, RootExtender>
ForeignKeysProvider
FormSubmissionProvider
FreetextResultProviderBase<RootExtender, OwnerTableInfo>
InvitationSubProviderBase<MainExtender>
LinksByDestinationProviderBase<MainExtenderType>
LinksBySourceProviderBase<MainExtenderType>
MailingFavouritesProvider
MailingsProviderBase
MemberProvider<RootExtender>
NewCategoryMembersProvider
NumbersProviderBase
OwnerContactsProvider
PersonFavouritesProvider
PersonProjectsProvider
PersonProvider
PriceListProvider
ProductProvider
ProjectFavouritesProvider
ProjectGuideSubProviderBase<RootExtender>
QuoteConnectionProvider
QuoteLineProvider
QuoteVersionAttachmentProvider
RecipientFavouritesProvider
RecycleContactsProvider
RecyclePersonProvider
RecycleTicketProvider
RoleProvider
SaleFavouritesProvider
SaleGuideSubProviderBase<RootExtender>
SaleHistoryProvider
SaleTypeQuoteAttachmentProvider
SelectionFavouritesProvider
SelectionMemberStaticProvider
SelectionStaticContactProvider
SelectionStaticPersonProvider
SimpleAppointmentsProvider
SimpleChatSessionsProvider
SimpleContactsProvider
SimpleDocumentsProvider
SimplePersonsProvider
SimpleProjectsProvider
SimpleSalesProvider
SimpleSelectionsProvider
SimpleShipmentProvider
SimpleTicketsProvider
StaticSelectionProviderBase<RowType, RootExtender>
SuperListColumnSizeProvider
SystemEventsProviderBase
TargetValueSubProvider
TicketActivatedNotificationSubProvider
TicketCustomMessageNotificationSubProvider
TicketEscalatedNotificationSubProvider
TicketFavouriteUpdatedNotificationSubProvider
TicketFavouritesProvider
TicketMessageProvider
TicketNewMessageNotificationSubProvider
TicketNewNotificationSubProvider
TicketProvider
TicketTransferredNotificationSubProvider
UsageStatsProvider
UserPreferenceTableProvider
UsersProviderBase
WebAppUsageProvider
ModuleLicenceProvider
Implements
IArchiveProviderQueryMapping
IArchiveQueryProvider
IArchiveProviderExtensible
IArchiveTypedProvider<RowType>
IArchiveTypedProviderBase
IArchiveProvider
IArchiveProviderHasRows
IArchiveProviderHasColumns
IArchiveProviderHasEntities
Inherited Members
QueryProviderBase<RowType>._colGetAllRows
QueryProviderBase<RowType>._colGetNoRows
QueryProviderBase<RowType>._pageSize
QueryProviderBase<RowType>._pageNumber
QueryProviderBase<RowType>.InnerSetRestriction(ArchiveRestrictionInfo[])
QueryProviderBase<RowType>.InnerMapFieldsAsync(CancellationToken)
QueryProviderBase<RowType>.PostProcessQuery()
QueryProviderBase<RowType>.GetFinalRowCount()
QueryProviderBase<RowType>.SetDesiredColumns(params string[])
QueryProviderBase<RowType>.GetAllExtenders()
QueryProviderBase<RowType>.OverrideValueIfBlank(ArchiveRow, string, string)
QueryProviderBase<RowType>.AddInhibitedStyleHint(string)
QueryProviderBase<RowType>.AcceptRow(SoDataReader)
QueryProviderBase<RowType>.RequiredPhaseOneFields()
QueryProviderBase<RowType>.PostProcessRow(SoDataReader, ArchiveRow)
QueryProviderBase<RowType>.CreateArchiveRow(string, int)
QueryProviderBase<RowType>.Close()
QueryProviderBase<RowType>.GetReaderAsync(string, CancellationToken)
QueryProviderBase<RowType>.GetResultInformationAsync()
QueryProviderBase<RowType>.SetRestriction(params ArchiveRestrictionInfo[])
QueryProviderBase<RowType>.SetOrderBy(ArchiveOrderByInfo[])
QueryProviderBase<RowType>.GetEntityName(SoDataReader)
QueryProviderBase<RowType>.SetPagingInfo(int, int)
QueryProviderBase<RowType>.ConvertToTypedRowsAsync(IAsyncEnumerable<ArchiveRow>)
QueryProviderBase<RowType>.GetAvailableEntities()
QueryProviderBase<RowType>.SetDesiredEntities(params string[])
QueryProviderBase<RowType>.RegisterEntity(ArchiveRowTypeInfo)
QueryProviderBase<RowType>.PrimaryKey
QueryProviderBase<RowType>.InhibitTwoPhaseQuery
QueryProviderBase<RowType>.DropTablesFromPhaseTwo
QueryProviderBase<RowType>.RootQuery
QueryProviderBase<RowType>.TableToExtend
QueryProviderBase<RowType>.OrderBySlots
QueryProviderBase<RowType>.InhibitDistinctPrimaryKeys
QueryProviderBase<RowType>.HaveReadToEnd
QueryProviderBase<RowType>.ValueOverrides
ExtensibleColumnsBase._minuteFields
ExtensibleColumnsBase.Visible
ExtensibleColumnsBase.Invisible
ExtensibleColumnsBase.AllowOrderBy
ExtensibleColumnsBase.DenyOrderBy
ExtensibleColumnsBase.GetAllRestriction
ExtensibleColumnsBase.GetNoneRestriction
ExtensibleColumnsBase.GetNameOrOverrideName(string)
ExtensibleColumnsBase.SetParent(IArchiveProviderExtensible)
ExtensibleColumnsBase.AddAvailableColumn(params ArchiveColumnInfo[])
ExtensibleColumnsBase.GetAvailableColumns()
ExtensibleColumnsBase.SetOrderByMapping(string, params string[])
ExtensibleColumnsBase.SetOrderByMapping(ArchiveColumnInfo, params ArchiveColumnInfo[])
ExtensibleColumnsBase.SetPrefixes(string, string)
ExtensibleColumnsBase.SetLocalAbsolutePrefixes(string, string)
ExtensibleColumnsBase.SetIconHint(string)
ExtensibleColumnsBase.AddLocalRestriction(params ArchiveRestrictionInfo[])
ExtensibleColumnsBase.AddExtensionProvider(IArchiveExtender)
ExtensibleColumnsBase.GetExtensionProviders()
ExtensibleColumnsBase.GetTableInfosFromExtensionProviders()
ExtensibleColumnsBase.PopulateRowFromReaderAsync(SoDataReader, ArchiveRow, CancellationToken)
ExtensibleColumnsBase.SuppressTableResults(SoDataReader, TableInfo)
ExtensibleColumnsBase.SuppressDeepTableResults(SoDataReader, TableInfo)
ExtensibleColumnsBase.AddColumnNameOverride(string, string)
ExtensibleColumnsBase.ApplyColumnNameOverridesToRestrictions()
ExtensibleColumnsBase.ApplyColumnNameOverrides(ArchiveRow)
ExtensibleColumnsBase.AddSubExtenderMapping(string, params ExtensibleColumnsBase[])
ExtensibleColumnsBase.WantColumnForOutput(params string[])
ExtensibleColumnsBase.WantColumnForOutput(params ArchiveColumnInfo[])
ExtensibleColumnsBase.WantColumnForOutput(List<ArchiveColumnInfo>)
ExtensibleColumnsBase.WantColumnForRestriction(params string[])
ExtensibleColumnsBase.WantColumnForRestriction(params ArchiveColumnInfo[])
ExtensibleColumnsBase.WantColumnForOrderBy(params string[])
ExtensibleColumnsBase.GetColumnOrderBy(string)
ExtensibleColumnsBase.WantColumnForOrderBy(params ArchiveColumnInfo[])
ExtensibleColumnsBase.WantColumnForAnything(params string[])
ExtensibleColumnsBase.WantColumnForAnything(params ArchiveColumnInfo[])
ExtensibleColumnsBase.IsQueryNeeded()
ExtensibleColumnsBase.IsQueryRestriction()
ExtensibleColumnsBase.GetLeftOuterOrInnerJoin(Equal)
ExtensibleColumnsBase.GetLeftOuterOrInnerJoin(Equal, Restriction)
ExtensibleColumnsBase.SetLeftOuterJoin(Equal)
ExtensibleColumnsBase.SetLeftOuterJoin(Equal, Restriction)
ExtensibleColumnsBase.SetLeftOuterOrInnerJoin(Equal)
ExtensibleColumnsBase.SetLeftOuterOrInnerJoin(Equal, Restriction)
ExtensibleColumnsBase.MapReturnField(ArchiveSelect, FieldInfo, bool, string, params ArchiveColumnInfo[])
ExtensibleColumnsBase.MapIdField(FieldInfo)
ExtensibleColumnsBase.MapAssociateField(FieldInfo, ArchiveColumnInfo, bool)
ExtensibleColumnsBase.MapEjUserField(FieldInfo, ArchiveColumnInfo)
ExtensibleColumnsBase.MapSimpleReturnField(FieldInfo, params ArchiveColumnInfo[])
ExtensibleColumnsBase.MapSimpleImageField(FieldInfo, ArchiveColumnInfo, int, int)
ExtensibleColumnsBase.MapPictureBlob(FieldInfo, ArchiveColumnInfo, BlobLinkType, int, int, int)
ExtensibleColumnsBase.MapSimpleCustomField(FieldInfo, params ArchiveColumnInfo[])
ExtensibleColumnsBase.MapSimpleListReturnField(FieldInfo, string, params ArchiveColumnInfo[])
ExtensibleColumnsBase.MapOrderByField(FieldInfo, ArchiveColumnInfo)
ExtensibleColumnsBase.ActivateAsLinkField(string, params ArchiveColumnInfo[])
ExtensibleColumnsBase.HasAvailableColumn(string)
ExtensibleColumnsBase.AddAndInitializeExtensionProvider<ExtenderType>(ExtenderType, string, string)
ExtensibleColumnsBase.AddAndInitializeExtensionProvider<ExtenderType>(ExtenderType)
ExtensibleColumnsBase.HasRestriction(string)
ExtensibleColumnsBase.ExtractRestrictions(string)
ExtensibleColumnsBase.ExtractRestrictions(ArchiveColumnInfo)
ExtensibleColumnsBase.ExtractRestriction(string)
ExtensibleColumnsBase.ExtractRestriction(ArchiveColumnInfo)
ExtensibleColumnsBase.ProcessRestrictions()
ExtensibleColumnsBase.ProcessOrderBy()
ExtensibleColumnsBase.PopulateSimpleFieldsAsync(SoDataReader, ArchiveRow, CancellationToken)
ExtensibleColumnsBase.CalculateOrderbyValue(string, SoDataReader, ArchiveColumnData)
ExtensibleColumnsBase.AddDbInfo(ArchiveColumnData, FieldInfo)
ExtensibleColumnsBase.AddDbInfo(ArchiveColumnData, int)
ExtensibleColumnsBase.ForceDisable()
ExtensibleColumnsBase.GetAssociateData(int)
ExtensibleColumnsBase.GetEjUserData(int)
ExtensibleColumnsBase.GetColumnIndex(ArchiveColumnInfo)
ExtensibleColumnsBase.GetColumnIndexFromReader(SoDataReader, FieldInfo, ref int)
ExtensibleColumnsBase.ConvertDbTypeToString(object, ExtensibleColumnsBase.DbColumnBinding)
ExtensibleColumnsBase.GetStandardTooltipHint(SoDataReader, FieldInfo)
ExtensibleColumnsBase.GetLinkHint(SoDataReader, string)
ExtensibleColumnsBase.SetNonZeroBoolRestriction(ArchiveColumnInfo)
ExtensibleColumnsBase.AddUpdatedByMapping(ArchiveColumnInfo, FieldInfo, FieldInfo)
ExtensibleColumnsBase.AddRegisteredMapping(ArchiveColumnInfo, FieldInfo, ArchiveColumnInfo, FieldInfo)
ExtensibleColumnsBase.AddLastUpdatedMapping(ArchiveColumnInfo, FieldInfo, FieldInfo)
ExtensibleColumnsBase.AddUpdatedBy(SoDataReader, ArchiveRow, ArchiveColumnInfo, FieldInfo, FieldInfo)
ExtensibleColumnsBase.AddUpdatedDate(SoDataReader, ArchiveRow, ArchiveColumnInfo, FieldInfo, FieldInfo, bool)
ExtensibleColumnsBase.AddAssociateFullName(SoDataReader, ArchiveRow, ArchiveColumnInfo, params FieldInfo[])
ExtensibleColumnsBase.GetIdFieldTag(SoDataReader)
ExtensibleColumnsBase.GetArchiveColumnName(SoField)
ExtensibleColumnsBase.ExtensibleHelper
ExtensibleColumnsBase.ColumnHelper
ExtensibleColumnsBase.RestrictionHelper
ExtensibleColumnsBase.Parent
ExtensibleColumnsBase.DisableSubtreeIfNoRestriction
ExtensibleColumnsBase.RestrictionSetForSubtree
ExtensibleColumnsBase.ForceQueryNeeded
ExtensibleColumnsBase.ForceRestriction
ExtensibleColumnsBase.BlockOrderBy
ExtensibleColumnsBase.IdField
ExtensibleColumnsBase.LastSubExtenderWins
ExtensibleColumnsBase.ParentPrimaryKey
ExtensibleColumnsBase.QuoteAlternativeId
ExtensibleColumnsBase.SaleId
ExtensibleColumnsBase.NamePrefix
ExtensibleColumnsBase.DisplayNamePrefix
ExtensibleColumnsBase.PopulateDisplayValue
ExtensibleColumnsBase.PopulateTooltipHint
ExtensibleColumnsBase.DebugXML
object.ToString()
object.Equals(object)
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
Namespace: SuperOffice.CRM.ArchiveLists
Assembly: SoDataBase.BusinessLogic.dll
Syntax
public abstract class TypedQueryProviderBase<RowType, RootExtender> : QueryProviderBase<RowType>, IArchiveProviderQueryMapping, IArchiveQueryProvider, IArchiveProviderExtensible, IArchiveTypedProvider<RowType>, IArchiveTypedProviderBase, IArchiveProvider, IArchiveProviderHasRows, IArchiveProviderHasColumns, IArchiveProviderHasEntities where RowType : ArchiveRow, new() where RootExtender : IArchiveExtender, new()
Type Parameters
Name Description
RowType

Type of archive row to return

RootExtender

Type of the extender that is the root extender of the provider

Constructors

TypedQueryProviderBase()

Create the provider, create the Select, instantiate the root extender. No entities are registered!

Declaration
protected TypedQueryProviderBase()

TypedQueryProviderBase(ArchiveRowTypeInfo)

Create the provider, create the Select, instantiate the root extender and register the main entity

Declaration
protected TypedQueryProviderBase(ArchiveRowTypeInfo entity)
Parameters
Type Name Description
ArchiveRowTypeInfo entity

Main entity of provider. If this is null, then this is assumed to be a fully dynamic provider, and all extender- and entity-related processing is postponed or skipped

TypedQueryProviderBase(ArchiveRowTypeInfo, RootExtender)

Create the provider, create the Select, instantiate the root extender and register the main entity

Declaration
protected TypedQueryProviderBase(ArchiveRowTypeInfo entity, RootExtender rootExtender)
Parameters
Type Name Description
ArchiveRowTypeInfo entity

Main entity of provider

RootExtender rootExtender

Extender (already instantiated, but not initialized with parent & prefix)

Properties

BaseExtender

Get the root extender of the provider

Declaration
protected RootExtender BaseExtender { get; }
Property Value
Type Description
RootExtender

PrimaryTable

Get the table of the root extender

Declaration
public override TableInfo PrimaryTable { get; }
Property Value
Type Description
TableInfo
Overrides
QueryProviderBase<RowType>.PrimaryTable

ProviderNameFromAttribute

Get the provider name, based on the compile-time ArchiveProviderAttribute set on the subclass

Declaration
protected string ProviderNameFromAttribute { get; }
Property Value
Type Description
string

Query

Get the root query

Declaration
public override ArchiveSelect Query { get; }
Property Value
Type Description
ArchiveSelect
Overrides
QueryProviderBase<RowType>.Query

RootExtenders

Implement this property to return the extender(s) that form the root of the query tree, or null if that is not meaningful. This property is used by the dynamic column processing, which will fail and throw an exception if null is returned here (no problem if dynamic column syntax is not used)

Declaration
protected override List<IArchiveExtender> RootExtenders { get; }
Property Value
Type Description
List<IArchiveExtender>
Overrides
QueryProviderBase<RowType>.RootExtenders

Methods

GetRowsAsync(string, CancellationToken)

Get the rows, as strongly typed elements

Declaration
public virtual IAsyncEnumerable<RowType> GetRowsAsync(string options, CancellationToken cancellationToken = default)
Parameters
Type Name Description
string options
CancellationToken cancellationToken
Returns
Type Description
IAsyncEnumerable<RowType>

GetStandardColumnNames()

Get the standard column names from the Archive row type

Declaration
public string[] GetStandardColumnNames()
Returns
Type Description
string[]

HandleDynamicExtenders(IArchiveExtender)

Base class for single-query providers that have strongly typed archive rows. It contains declarations and methods to set up one main extender, get the standard column names from the row type, and set standard entity-based navigation hints if no other hints have been set.

Declaration
protected override void HandleDynamicExtenders(IArchiveExtender dynamicTree)
Parameters
Type Name Description
IArchiveExtender dynamicTree
Overrides
QueryProviderBase<RowType>.HandleDynamicExtenders(IArchiveExtender)

InnerPopulateRowFromReader(SoDataReader, ArchiveRow)

Override: If no-one in the subclass has set the link hint up to now, then do so, using the row entity name and primary key

Declaration
protected override void InnerPopulateRowFromReader(SoDataReader reader, ArchiveRow row)
Parameters
Type Name Description
SoDataReader reader
ArchiveRow row
Overrides
ExtensibleColumnsBase.InnerPopulateRowFromReader(SoDataReader, ArchiveRow)

SetAdditionalColumns(params string[])

Set additional return columns (the standard columns are always included)

Declaration
public void SetAdditionalColumns(params string[] additionalColumns)
Parameters
Type Name Description
string[] additionalColumns

Implements

IArchiveProviderQueryMapping
IArchiveQueryProvider
IArchiveProviderExtensible
IArchiveTypedProvider<StronglyTypedRow>
IArchiveTypedProviderBase
IArchiveProvider
IArchiveProviderHasRows
IArchiveProviderHasColumns
IArchiveProviderHasEntities

Extension Methods

IArchiverProviderHasRowsExtensions.GetRowsAsync(IArchiveProviderHasRows, CancellationToken)
EnumUtil.MapEnums<From, To>(From)
Converters.MapEnums<From, To>(From)
© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top