Class PersonInterestExtender
Extender for contact interests
Inheritance
Implements
Inherited Members
Namespace: SuperOffice.CRM.ArchiveLists
Assembly: SoDataBase.dll
Syntax
public class PersonInterestExtender : TableExtenderBase<PersonInterestTableInfo>, IArchiveProviderQueryMapping, IArchiveExtender, IArchiveProviderDoesExtend, IArchiveProviderHasColumns, IArchiveProviderExtensible, IPlugin
Remarks
This extender, like ContactInterestExtender, is of type ListAll which means that you can have 'allOf' as an operator on its single restriction, the interest id. The result is that you can search for contact that have all of a set of interests. In practice this requires one join per interest, since there is a many-many relationship between contact and interest.
The actual multiple-join logic is in CreateListAllRestriction(ArchiveRestrictionInfo, ArchiveSelect, FieldInfo, FieldInfo, FieldInfo). Here we simply intercept the restriction handling in the usual way and route it there for further processing, passing in the fieldinfos needed to get the correct joins an where clauses.
Fields
_colInterestIds
Declaration
protected ArchiveColumnInfo _colInterestIds
Field Value
Type | Description |
---|---|
ArchiveColumnInfo |
Methods
InnerModifyQuery()
Map a simple return field to the first joined instance of personinterest, and set up the restriction processing
Declaration
protected override void InnerModifyQuery()
Overrides
InnerPopulateRowFromReader(SoDataReader, ArchiveRow)
Empty
Declaration
protected override void InnerPopulateRowFromReader(SoDataReader reader, ArchiveRow row)
Parameters
Type | Name | Description |
---|---|---|
SoDataReader | reader | |
ArchiveRow | row |
Overrides
SetJoin()
Generate the (first) join between our parent contact table and our own contactinterest table; keep track of the parent contact primary key field
Declaration
protected override PersonInterestTableInfo SetJoin()
Returns
Type | Description |
---|---|
PersonInterestTableInfo |