Show / Hide Table of Contents

Class LinksBySourceProviderBase<MainExtenderType>

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Inheritance
object
ExtensibleColumnsBase
QueryProviderBase<ArchiveRow>
TypedQueryProviderBase<ArchiveRow, MainExtenderType>
LinksBySourceProviderBase<MainExtenderType>
LinksBySourceProviderLeftBase<MainExtenderType>
LinksBySourceProviderRightBase<MainExtenderType>
Implements
IArchiveProviderQueryMapping
IArchiveQueryProvider
IArchiveProviderExtensible
IArchiveTypedProvider<ArchiveRow>
IArchiveTypedProviderBase
IArchiveProvider
IArchiveProviderHasRows
IArchiveProviderHasColumns
IArchiveProviderHasEntities
Inherited Members
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.HandleDynamicExtenders(IArchiveExtender)
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.InnerPopulateRowFromReader(SoDataReader, ArchiveRow)
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.GetRowsAsync(string, CancellationToken)
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.GetStandardColumnNames()
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.SetAdditionalColumns(params string[])
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.BaseExtender
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.ProviderNameFromAttribute
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.RootExtenders
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.PrimaryTable
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.Query
QueryProviderBase<ArchiveRow>._colGetAllRows
QueryProviderBase<ArchiveRow>._colGetNoRows
QueryProviderBase<ArchiveRow>._pageSize
QueryProviderBase<ArchiveRow>._pageNumber
QueryProviderBase<ArchiveRow>.InnerSetRestriction(ArchiveRestrictionInfo[])
QueryProviderBase<ArchiveRow>.PostProcessQuery()
QueryProviderBase<ArchiveRow>.HandleDynamicExtenders(IArchiveExtender)
QueryProviderBase<ArchiveRow>.GetFinalRowCount()
QueryProviderBase<ArchiveRow>.SetDesiredColumns(params string[])
QueryProviderBase<ArchiveRow>.GetAllExtenders()
QueryProviderBase<ArchiveRow>.OverrideValueIfBlank(ArchiveRow, string, string)
QueryProviderBase<ArchiveRow>.AddInhibitedStyleHint(string)
QueryProviderBase<ArchiveRow>.AcceptRow(SoDataReader)
QueryProviderBase<ArchiveRow>.RequiredPhaseOneFields()
QueryProviderBase<ArchiveRow>.PostProcessRow(SoDataReader, ArchiveRow)
QueryProviderBase<ArchiveRow>.CreateArchiveRow(string, int)
QueryProviderBase<ArchiveRow>.Close()
QueryProviderBase<ArchiveRow>.GetReaderAsync(string, CancellationToken)
QueryProviderBase<ArchiveRow>.GetRowsAsync(string, CancellationToken)
QueryProviderBase<ArchiveRow>.GetResultInformationAsync()
QueryProviderBase<ArchiveRow>.SetRestriction(params ArchiveRestrictionInfo[])
QueryProviderBase<ArchiveRow>.SetOrderBy(ArchiveOrderByInfo[])
QueryProviderBase<ArchiveRow>.GetEntityName(SoDataReader)
QueryProviderBase<ArchiveRow>.SetPagingInfo(int, int)
QueryProviderBase<ArchiveRow>.ConvertToTypedRowsAsync(IAsyncEnumerable<ArchiveRow>)
QueryProviderBase<ArchiveRow>.GetAvailableEntities()
QueryProviderBase<ArchiveRow>.SetDesiredEntities(params string[])
QueryProviderBase<ArchiveRow>.RegisterEntity(ArchiveRowTypeInfo)
QueryProviderBase<ArchiveRow>.PrimaryKey
QueryProviderBase<ArchiveRow>.InhibitTwoPhaseQuery
QueryProviderBase<ArchiveRow>.DropTablesFromPhaseTwo
QueryProviderBase<ArchiveRow>.RootQuery
QueryProviderBase<ArchiveRow>.OrderBySlots
QueryProviderBase<ArchiveRow>.Query
QueryProviderBase<ArchiveRow>.InhibitDistinctPrimaryKeys
QueryProviderBase<ArchiveRow>.RootExtenders
QueryProviderBase<ArchiveRow>.HaveReadToEnd
QueryProviderBase<ArchiveRow>.ValueOverrides
ExtensibleColumnsBase._orderBy
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.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 LinksBySourceProviderBase<MainExtenderType> : TypedQueryProviderBase<ArchiveRow, MainExtenderType>, IArchiveProviderQueryMapping, IArchiveQueryProvider, IArchiveProviderExtensible, IArchiveTypedProvider<ArchiveRow>, IArchiveTypedProviderBase, IArchiveProvider, IArchiveProviderHasRows, IArchiveProviderHasColumns, IArchiveProviderHasEntities where MainExtenderType : IArchiveExtender, new()
Type Parameters
Name Description
MainExtenderType

Type of the main data extender to use

Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

Constructors

LinksBySourceProviderBase(ArchiveRowTypeInfo)

Create the provider, set up c ustom processing for the source restrictions (appointment, sale, document). Instantiate the main extender, which is our type parameter. register the entity.

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

Entity that we are processing

Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

Fields

LinkDescription

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
public const string LinkDescription = "linkDescription"
Field Value
Type Description
string
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

LinkId

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
public const string LinkId = "linkId"
Field Value
Type Description
string
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_colRelationId

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected ArchiveColumnInfo _colRelationId
Field Value
Type Description
ArchiveColumnInfo
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_colRelcomment

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected ArchiveColumnInfo _colRelcomment
Field Value
Type Description
ArchiveColumnInfo
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_colSourceAppointmentRestrictionId

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected ArchiveColumnInfo _colSourceAppointmentRestrictionId
Field Value
Type Description
ArchiveColumnInfo
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_colSourceContactRestrictionId

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected ArchiveColumnInfo _colSourceContactRestrictionId
Field Value
Type Description
ArchiveColumnInfo
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_colSourceDocumentRestrictionId

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected ArchiveColumnInfo _colSourceDocumentRestrictionId
Field Value
Type Description
ArchiveColumnInfo
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_colSourcePersonRestrictionId

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected ArchiveColumnInfo _colSourcePersonRestrictionId
Field Value
Type Description
ArchiveColumnInfo
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_colSourceProjectRestrictionId

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected ArchiveColumnInfo _colSourceProjectRestrictionId
Field Value
Type Description
ArchiveColumnInfo
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_colSourceSaleRestrictionId

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected ArchiveColumnInfo _colSourceSaleRestrictionId
Field Value
Type Description
ArchiveColumnInfo
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_colSourceSelectionRestrictionId

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected ArchiveColumnInfo _colSourceSelectionRestrictionId
Field Value
Type Description
ArchiveColumnInfo
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_numDestinationRestrictions

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected int _numDestinationRestrictions
Field Value
Type Description
int
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

_relationsTable

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected RelationsTableInfo _relationsTable
Field Value
Type Description
RelationsTableInfo
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

Properties

PrimaryTable

Get the table of the root extender

Declaration
public override TableInfo PrimaryTable { get; }
Property Value
Type Description
TableInfo
Overrides
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.PrimaryTable
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

TableToExtend

The primary table of this archive provider

Declaration
public override TableInfo TableToExtend { get; }
Property Value
Type Description
TableInfo
Overrides
QueryProviderBase<ArchiveRow>.TableToExtend
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

Methods

InnerMapFieldsAsync(CancellationToken)

Override this method to map query fields to columns, add additional return fields to the query, and set up custom restriction handling

Declaration
public override Task InnerMapFieldsAsync(CancellationToken cancellationToken = default)
Parameters
Type Name Description
CancellationToken cancellationToken
Returns
Type Description
Task
Overrides
QueryProviderBase<ArchiveRow>.InnerMapFieldsAsync(CancellationToken)
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

InnerPopulateRowFromReader(SoDataReader, ArchiveRow)

Override: Set row navigation based on the entity name and row primary key

Declaration
protected override void InnerPopulateRowFromReader(SoDataReader reader, ArchiveRow row)
Parameters
Type Name Description
SoDataReader reader
ArchiveRow row
Overrides
TypedQueryProviderBase<ArchiveRow, MainExtenderType>.InnerPopulateRowFromReader(SoDataReader, ArchiveRow)
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

ProcessRestrictions()

Override: Process one (1) source restriction, via the base class and CustomBinding mechanism of the RestrictionHelper.

Declaration
protected override bool ProcessRestrictions()
Returns
Type Description
bool
Overrides
ExtensibleColumnsBase.ProcessRestrictions()
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

ProcessSourceRestriction(TableInfo, ArchiveRestrictionInfo, ArchiveSelect)

Base class for link data providers that are addressed by source - that is, where the source (left) side of the link is a known appointment, sale or document, and we wish to retrieve the right side.

Declaration
protected abstract void ProcessSourceRestriction(TableInfo sourceTable, ArchiveRestrictionInfo restriction, ArchiveSelect targetQuery)
Parameters
Type Name Description
TableInfo sourceTable
ArchiveRestrictionInfo restriction
ArchiveSelect targetQuery
Remarks

This class processes the sourceXXX restrictions and sets up the join to the relations table, as well as setting default link hints on the generated rows. These providers are the ones used to retrieve the Links archives initially. The Web client will then parse the rows and switch to use ByDestination addressing, which is what is needed to Edit the Links archive, based on state maintained by the client.

The Extenders used for BySource addressing derive directly from the respective bases (such as SaleExtenderBase), since they are connected to a query on a different table (relations, for the links). ByDestination addressing uses root extenders (such as SaleSaleExtender), since the restriction applies directly to the table we'll be fetching from.

To support bidirectional link fetching, we subclass into Left and Right variants, each with a corresponding Extender. The Extnder handles joingin and population, while the Left and Right provider subclasses handle restrictions. It's still BySource as seen by the LinksProvider system.

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