Class ChatConversationShadowSelectionStaticProviderV2
Shadow contact provider for the static ChatConversation provider.
Inheritance
Implements
Inherited Members
Namespace: SuperOffice.CRM.ArchiveLists.Archive
Assembly: SoDataBase.dll
Syntax
[ArchiveProvider("ChatConversationShadowStaticSelectionV2", 1073741823)]
public class ChatConversationShadowSelectionStaticProviderV2 : ChatConversationSelectionStaticProviderV2, IArchiveProviderQueryMapping, IArchiveQueryProvider, IArchiveProviderExtensible, IArchiveTypedProvider<ArchiveRow>, IArchiveTypedProviderBase, IArchiveProvider, IArchiveProviderHasRows, IArchiveProviderHasColumns, IArchiveProviderHasEntities
Constructors
ChatConversationShadowSelectionStaticProviderV2()
Shadow contact provider for the static ChatConversation provider.
Declaration
public ChatConversationShadowSelectionStaticProviderV2()
Fields
ProviderName
Shadow contact provider for the static ChatConversation provider.
Declaration
public const string ProviderName = "ChatConversationShadowStaticSelectionV2"
Field Value
Type | Description |
---|---|
string |
Methods
AcceptRow(SoDataReader)
Decide whether the current row of the passed-in _reader should be accepted or not. If false is returned, this row is skipped by the base class and never seen by the client. This method is called very early, before any ArchiveRow population, and can only rely on fields directly accessible in the Reader. On the other hand, that makes is reasonably cheap to skip rows.
If you implement this method, you MUST aslo implement RequiredPhaseOneFields() to tell the query rewriter about fields you need, otherwise they will not be present in the phase one query and you will crash.Declaration
protected override bool AcceptRow(SoDataReader reader)
Parameters
Type | Name | Description |
---|---|---|
SoDataReader | reader |
Returns
Type | Description |
---|---|
bool | true if the current row should be further processed |
Overrides
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
PostProcessQuery()
This method is called after ModifyQuery has been called on all extenders, but before the query is executed. It is used for processing that needs the query to be 'complete' from the extenders, and gives the opportunity to tweak it, for instance by adding return fields needed for some particular functionality.
Declaration
public override void PostProcessQuery()
Overrides
RequiredPhaseOneFields()
Return the FieldInfo fields needed by AcceptRow(SoDataReader), so that the query rewriter does not drop them. Implement this method IFF you implement AcceptRow.
Declaration
protected override FieldInfo[] RequiredPhaseOneFields()
Returns
Type | Description |
---|---|
FieldInfo[] |
Overrides
SetDesiredColumns(params string[])
Set the desired columns, by saving them in an internal data structures. Duplicates are gracefully ignored.
Declaration
public override void SetDesiredColumns(params string[] columnIds)
Parameters
Type | Name | Description |
---|---|---|
string[] | columnIds |
Overrides
SetRestriction(params ArchiveRestrictionInfo[])
Set the restriction by calling the base class and InnerSetRestriction; take this opportunity to note that a restriction has actually been set, so we can report cases of totally missing restrictions (which is not acceptable as it might end up fetching the whole database)
Declaration
public override bool SetRestriction(params ArchiveRestrictionInfo[] restrictions)
Parameters
Type | Name | Description |
---|---|---|
ArchiveRestrictionInfo[] | restrictions |
Returns
Type | Description |
---|---|
bool |