Class AppointmentProviderBase<RootExtender>
Base class for appointment providers, containing the logic that implements
the special rules, such as done today or preference-based booking filters.
Derived classes must call the ProcessKindRestrictions(ActivityArchiveKind) method
from their to activate the functionality.
Inheritance
AppointmentProviderBase<RootExtender>
Assembly: SoDataBase.dll
Syntax
public abstract class AppointmentProviderBase<RootExtender> : ActivityProviderBase<RootExtender>, IArchiveProviderQueryMapping, IArchiveQueryProvider, IArchiveProviderExtensible, IArchiveTypedProvider<ArchiveRow>, IArchiveTypedProviderBase, IArchiveProvider, IArchiveProviderHasRows, IArchiveProviderHasColumns, IArchiveProviderHasEntities, IPlugin, IArchiveProviderHasFilter where RootExtender : IArchiveExtender, new()
Type Parameters
Name |
Description |
RootExtender |
|
Constructors
AppointmentProviderBase(ArchiveRowTypeInfo)
Declaration
protected AppointmentProviderBase(ArchiveRowTypeInfo entity)
Parameters
Fields
_colParticipating
Declaration
protected ArchiveColumnInfo _colParticipating
Field Value
Properties
DropTablesFromPhaseTwo
Declaration
protected override TableInfo[] DropTablesFromPhaseTwo { get; }
Property Value
Overrides
SuperOffice.CRM.ArchiveLists.QueryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.DropTablesFromPhaseTwo
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 implements those parts of the activity archive rules that are too complex
to reasonably express in SQL.
Declaration
protected override bool AcceptRow(SoDataReader reader)
Parameters
Type |
Name |
Description |
SoDataReader |
reader |
reader with the current row
|
Returns
Type |
Description |
Boolean |
true if the current row should be further processed
|
Overrides
SuperOffice.CRM.ArchiveLists.QueryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.AcceptRow(SuperOffice.Data.SoDataReader)
InnerPopulateRowFromReader(SoDataReader, ArchiveRow)
Override: Populate the column that tells us whether the current user is invited to an activity
Declaration
protected override void InnerPopulateRowFromReader(SoDataReader reader, ArchiveRow row)
Parameters
Overrides
SuperOffice.CRM.ArchiveLists.TypedQueryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow, RootExtender>.InnerPopulateRowFromReader(SuperOffice.Data.SoDataReader, SuperOffice.CRM.ArchiveLists.ArchiveRow)
PostProcessQuery()
LEFT-outerjoin appointments to detect and manage bookings, if this is a contactactivity archive
Declaration
public override void PostProcessQuery()
Overrides
SuperOffice.CRM.ArchiveLists.QueryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.PostProcessQuery()
ProcessKindRestrictions(ActivityArchiveKind)
Process as many of the kind-based restrictions (see ActivityArchiveKind)
as possible in SQL, and order up enough return fields to do the rest.
Declaration
protected override void ProcessKindRestrictions(ActivityArchiveKind kind)
Parameters
Overrides
SuperOffice.CRM.ArchiveLists.ActivityProviderBase<RootExtender>.ProcessKindRestrictions(SuperOffice.CRM.ArchiveLists.ActivityArchiveKind)
RequiredPhaseOneFields()
Return the fields needed for AcceptRow, these are the same fields as specified at the end of ProcessKindRestrictions
Declaration
protected override FieldInfo[] RequiredPhaseOneFields()
Returns
Overrides
SuperOffice.CRM.ArchiveLists.QueryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.RequiredPhaseOneFields()
SetRestriction(ArchiveRestrictionInfo[])
Declaration
public override bool SetRestriction(params ArchiveRestrictionInfo[] restrictions)
Parameters
Returns
Overrides
SuperOffice.CRM.ArchiveLists.QueryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.SetRestriction(SuperOffice.CRM.ArchiveLists.ArchiveRestrictionInfo[])
Implements
Extension Methods
EnumUtil.MapEnums<From, To>(From)