Class ContactWithPersonExtenderBase<PersonExtenderClass>
This is the base class for contact extenders that, in additional to all the usual contact-related extenders, also have a person extender. It is used for Find and Dynamic selections.
Inheritance
Implements
Inherited Members
Namespace: SuperOffice.CRM.ArchiveLists
Assembly: SoDataBase.dll
Syntax
public abstract class ContactWithPersonExtenderBase<PersonExtenderClass> : CombinedContactExtenderBase, IArchiveProviderQueryMapping, IArchiveExtender, IArchiveProviderDoesExtend, IArchiveProviderHasColumns, IArchiveProviderExtensible where PersonExtenderClass : ContactPersonExtender, new()
Type Parameters
Name | Description |
---|---|
PersonExtenderClass | The type of person extender to instantiate; this must be a subclass of ContactPersonExtender, and must have a parameterless, public constructor |
Remarks
Usually we start with person and add contact information. However, this class implements the opposite logic, needed in situations where we always have a contact component, and may or may not want to extend it with one or more related persons. This base class is also a 'root extender', in the sense that it defines its own root table; this makes it similar to for instance the PersonPersonExtender.
Constructors
ContactWithPersonExtenderBase()
Construct the object and instantiate the ContactTableInfo
Declaration
public ContactWithPersonExtenderBase()
Remarks
Would have preferred this to be an 'internal' constructor, but in order to be used with templates and the new() constraint it has to be public. See ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_csref/html/58850b64-cb97-4136-be50-1f3bc7fc1da9.htm for more information.
ContactWithPersonExtenderBase(Features)
Constructor that takes a features parameters that will be propagated down to the ContactExtenderBase.
Declaration
public ContactWithPersonExtenderBase(ContactExtenderBase.Features features)
Parameters
Type | Name | Description |
---|---|---|
ContactExtenderBase.Features | features |
Remarks
Usually we start with person and add contact information. However, this class implements the opposite logic, needed in situations where we always have a contact component, and may or may not want to extend it with one or more related persons. This base class is also a 'root extender', in the sense that it defines its own root table; this makes it similar to for instance the PersonPersonExtender.
ContactWithPersonExtenderBase(Features, string)
This is the base class for contact extenders that, in additional to all the usual contact-related extenders, also have a person extender. It is used for Find and Dynamic selections.
Declaration
public ContactWithPersonExtenderBase(ContactExtenderBase.Features features, string context)
Parameters
Type | Name | Description |
---|---|---|
ContactExtenderBase.Features | features | |
string | context |
Remarks
Usually we start with person and add contact information. However, this class implements the opposite logic, needed in situations where we always have a contact component, and may or may not want to extend it with one or more related persons. This base class is also a 'root extender', in the sense that it defines its own root table; this makes it similar to for instance the PersonPersonExtender.
Fields
_rootContactTable
This is the base class for contact extenders that, in additional to all the usual contact-related extenders, also have a person extender. It is used for Find and Dynamic selections.
Declaration
protected ContactTableInfo _rootContactTable
Field Value
Type | Description |
---|---|
ContactTableInfo |
Remarks
Usually we start with person and add contact information. However, this class implements the opposite logic, needed in situations where we always have a contact component, and may or may not want to extend it with one or more related persons. This base class is also a 'root extender', in the sense that it defines its own root table; this makes it similar to for instance the PersonPersonExtender.
Properties
ContactTable
This is the base class for contact extenders that, in additional to all the usual contact-related extenders, also have a person extender. It is used for Find and Dynamic selections.
Declaration
protected ContactTableInfo ContactTable { get; }
Property Value
Type | Description |
---|---|
ContactTableInfo |
Remarks
Usually we start with person and add contact information. However, this class implements the opposite logic, needed in situations where we always have a contact component, and may or may not want to extend it with one or more related persons. This base class is also a 'root extender', in the sense that it defines its own root table; this makes it similar to for instance the PersonPersonExtender.
IsPersonQuery
Return true if the current restrictions contain at least one person-related restriction. Note that generic phone and email restrictions do not count as person level restrictions here.
Declaration
public bool IsPersonQuery { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
Usually we start with person and add contact information. However, this class implements the opposite logic, needed in situations where we always have a contact component, and may or may not want to extend it with one or more related persons. This base class is also a 'root extender', in the sense that it defines its own root table; this makes it similar to for instance the PersonPersonExtender.
IsPureContactQuery
This is the base class for contact extenders that, in additional to all the usual contact-related extenders, also have a person extender. It is used for Find and Dynamic selections.
Declaration
public bool IsPureContactQuery { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
Usually we start with person and add contact information. However, this class implements the opposite logic, needed in situations where we always have a contact component, and may or may not want to extend it with one or more related persons. This base class is also a 'root extender', in the sense that it defines its own root table; this makes it similar to for instance the PersonPersonExtender.
Methods
SetJoin()
Subclass contract: Implementations of this method should create the extenders' table information object, join it to the relevant parent, and return the table information instance
Declaration
protected override ContactTableInfo SetJoin()
Returns
Type | Description |
---|---|
ContactTableInfo |
Overrides
Remarks
Usually we start with person and add contact information. However, this class implements the opposite logic, needed in situations where we always have a contact component, and may or may not want to extend it with one or more related persons. This base class is also a 'root extender', in the sense that it defines its own root table; this makes it similar to for instance the PersonPersonExtender.