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>
AppointmentFavouritesProvider
AppointmentSelectionStaticProvider
DocumentSelectionStaticProvider
DummySelectionContactProvider
DynamicSelectionProviderBase<RowType, RootExtender>
DynamicSelectionProviderBaseV2<RowType, RootExtender, TableInfoType>
ProjectSelectionStaticProvider
QuoteLineSelectionStaticProvider
SaleSelectionStaticProvider
TicketSelectionStaticProvider
AssociateProjectsProvider
BatchTaskProvider
ChatSessionProvider
ConsentPurposeProvider
ContactFavouritesProvider
ContactProjectsProvider
DocumentFavouritesProvider
DocumentQuoteLineInnerDataProvider
DotSyntaxProvider
EjscriptsProvider
EmailAddressProviderBase
EMailItemProvider
ErpConnectionProvider
ErpConnectorProvider
EventHandlersProvider
ExternalPersonsProvider
FindProviderBase<RowType, RootExtender>
ForeignKeysProvider
FormSubmissionProvider
FreetextResultProviderBase<RootExtender, OwnerTableInfo>
InvitationSubProviderBase<MainExtender>
LinksByDestinationProviderBase<MainExtenderType>
LinksBySourceProviderBase<MainExtenderType>
MailingFavouritesProvider
MailingsProviderBase
MemberProvider<RootExtender>
NumbersProviderBase
OwnerContactsProvider
PersonFavouritesProvider
PersonProjectsProvider
PersonProvider
PriceListProvider
ProductProvider
ProjectFavouritesProvider
ProjectGuideSubProviderBase<RootExtender>
QuoteConnectionProvider
QuoteLineProvider
QuoteVersionAttachmentProvider
RecycleContactsProvider
RecyclePersonProvider
ReportsProviderBase
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
TicketFavouritesProvider
TicketMessageProvider
TicketProvider
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>.InnerMapFields()
QueryProviderBase<RowType>.PostProcessQuery()
QueryProviderBase<RowType>.GetFinalRowCount()
QueryProviderBase<RowType>.SetDesiredColumns(String[])
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, Int32)
QueryProviderBase<RowType>.Close()
QueryProviderBase<RowType>.GetReader(String)
QueryProviderBase<RowType>.GetResultInformation()
QueryProviderBase<RowType>.SetRestriction(ArchiveRestrictionInfo[])
QueryProviderBase<RowType>.SetOrderBy(ArchiveOrderByInfo[])
QueryProviderBase<RowType>.GetEntityName(SoDataReader)
QueryProviderBase<RowType>.SetPagingInfo(Int32, Int32)
QueryProviderBase<RowType>.ConvertToTypedRows(IEnumerable<ArchiveRow>)
QueryProviderBase<RowType>.GetAvailableEntities()
QueryProviderBase<RowType>.SetDesiredEntities(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.SetParent(IArchiveProviderExtensible)
ExtensibleColumnsBase.AddAvailableColumn(ArchiveColumnInfo[])
ExtensibleColumnsBase.GetAvailableColumns()
ExtensibleColumnsBase.SetOrderByMapping(String, String[])
ExtensibleColumnsBase.SetOrderByMapping(ArchiveColumnInfo, ArchiveColumnInfo[])
ExtensibleColumnsBase.SetPrefixes(String, String)
ExtensibleColumnsBase.SetLocalAbsolutePrefixes(String, String)
ExtensibleColumnsBase.SetIconHint(String)
ExtensibleColumnsBase.AddLocalRestriction(ArchiveRestrictionInfo[])
ExtensibleColumnsBase.AddExtensionProvider(IArchiveExtender)
ExtensibleColumnsBase.GetExtensionProviders()
ExtensibleColumnsBase.GetTableInfosFromExtensionProviders()
ExtensibleColumnsBase.PopulateRowFromReader(SoDataReader, ArchiveRow)
ExtensibleColumnsBase.SuppressTableResults(SoDataReader, TableInfo)
ExtensibleColumnsBase.SuppressDeepTableResults(SoDataReader, TableInfo)
ExtensibleColumnsBase.AddColumnNameOverride(String, String)
ExtensibleColumnsBase.ApplyColumnNameOverrides(ArchiveRow)
ExtensibleColumnsBase.AddSubExtenderMapping(String, ExtensibleColumnsBase[])
ExtensibleColumnsBase.WantColumnForOutput(String[])
ExtensibleColumnsBase.WantColumnForOutput(ArchiveColumnInfo[])
ExtensibleColumnsBase.WantColumnForOutput(List<ArchiveColumnInfo>)
ExtensibleColumnsBase.WantColumnForRestriction(String[])
ExtensibleColumnsBase.WantColumnForRestriction(ArchiveColumnInfo[])
ExtensibleColumnsBase.WantColumnForOrderBy(String[])
ExtensibleColumnsBase.GetColumnOrderBy(String)
ExtensibleColumnsBase.WantColumnForOrderBy(ArchiveColumnInfo[])
ExtensibleColumnsBase.WantColumnForAnything(String[])
ExtensibleColumnsBase.WantColumnForAnything(ArchiveColumnInfo[])
ExtensibleColumnsBase.IsQueryNeeded()
ExtensibleColumnsBase.IsQueryRestriction()
ExtensibleColumnsBase.GetLeftOuterOrInnerJoin(Equal)
ExtensibleColumnsBase.GetLeftOuterOrInnerJoin(Equal, Restriction)
ExtensibleColumnsBase.SetLeftOuterOrInnerJoin(Equal)
ExtensibleColumnsBase.SetLeftOuterOrInnerJoin(Equal, Restriction)
ExtensibleColumnsBase.MapReturnField(ArchiveSelect, FieldInfo, Boolean, String, ArchiveColumnInfo[])
ExtensibleColumnsBase.MapIdField(FieldInfo)
ExtensibleColumnsBase.MapAssociateField(FieldInfo, ArchiveColumnInfo)
ExtensibleColumnsBase.MapEjUserField(FieldInfo, ArchiveColumnInfo)
ExtensibleColumnsBase.MapSimpleReturnField(FieldInfo, ArchiveColumnInfo[])
ExtensibleColumnsBase.MapSimpleImageField(FieldInfo, ArchiveColumnInfo, Int32, Int32)
ExtensibleColumnsBase.MapPictureBlob(FieldInfo, ArchiveColumnInfo, BlobLinkType, Int32, Int32, Int32)
ExtensibleColumnsBase.MapSimpleCustomField(FieldInfo, ArchiveColumnInfo[])
ExtensibleColumnsBase.MapSimpleListReturnField(FieldInfo, String, ArchiveColumnInfo[])
ExtensibleColumnsBase.MapOrderByField(FieldInfo, ArchiveColumnInfo)
ExtensibleColumnsBase.ActivateAsLinkField(String, 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.PopulateSimpleFields(SoDataReader, ArchiveRow)
ExtensibleColumnsBase.CalculateOrderbyValue(String, SoDataReader, ArchiveColumnData)
ExtensibleColumnsBase.AddDbInfo(ArchiveColumnData, FieldInfo)
ExtensibleColumnsBase.AddDbInfo(ArchiveColumnData, Int32)
ExtensibleColumnsBase.ForceDisable()
ExtensibleColumnsBase.GetAssociateData(Int32)
ExtensibleColumnsBase.GetEjUserData(Int32)
ExtensibleColumnsBase.GetColumnIndex(ArchiveColumnInfo)
ExtensibleColumnsBase.GetColumnIndexFromReader(SoDataReader, FieldInfo, Int32)
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)
ExtensibleColumnsBase.AddAssociateFullName(SoDataReader, ArchiveRow, ArchiveColumnInfo, 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.dll
Syntax
public abstract class TypedQueryProviderBase<RowType, RootExtender> : QueryProviderBase<RowType>, IArchiveProviderQueryMapping, IArchiveQueryProvider, IArchiveProviderExtensible, IArchiveTypedProvider<RowType>, IArchiveTypedProviderBase, IArchiveProvider, IArchiveProviderHasRows, IArchiveProviderHasColumns, IArchiveProviderHasEntities, IPlugin 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
SuperOffice.CRM.ArchiveLists.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
SuperOffice.CRM.ArchiveLists.QueryProviderBase<RowType>.Query

RootExtenders

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

Methods

GetRows(String)

Get the rows, as strongly typed elements

Declaration
public virtual IEnumerable<RowType> GetRows(string options)
Parameters
Type Name Description
String options
Returns
Type Description
IEnumerable<RowType>

GetStandardColumnNames()

Get the standard column names from the Archive row type

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

HandleDynamicExtenders(IArchiveExtender)

Declaration
protected override void HandleDynamicExtenders(IArchiveExtender dynamicTree)
Parameters
Type Name Description
IArchiveExtender dynamicTree
Overrides
SuperOffice.CRM.ArchiveLists.QueryProviderBase<RowType>.HandleDynamicExtenders(SuperOffice.CRM.ArchiveLists.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(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

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