Show / Hide Table of Contents

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
object
ExtensibleColumnsBase
ExtenderBase<ContactTableInfo>
TableExtenderBase<ContactTableInfo>
ContactExtenderBase
CombinedContactExtenderBase
ContactWithPersonExtenderBase<PersonExtenderClass>
FindContactExtender
SelectionCombinedContactPersonExtenderBase
Implements
IArchiveProviderQueryMapping
IArchiveExtender
IArchiveProviderDoesExtend
IArchiveProviderHasColumns
IArchiveProviderExtensible
Inherited Members
CombinedContactExtenderBase._colWho
CombinedContactExtenderBase.ModifyQuery()
CombinedContactExtenderBase.InnerPopulateRowFromReader(SoDataReader, ArchiveRow)
ContactExtenderBase.ColContactId
ContactExtenderBase.ColCategory
ContactExtenderBase._colContactId
ContactExtenderBase._colName
ContactExtenderBase._colDepartment
ContactExtenderBase._colNameAndDepartment
ContactExtenderBase._colHasInfoText
ContactExtenderBase._colHasInterests
ContactExtenderBase._colAssociateId
ContactExtenderBase._colCategory
ContactExtenderBase._colBusiness
ContactExtenderBase._colCountry
ContactExtenderBase._colCountryId
ContactExtenderBase._colNumber
ContactExtenderBase._colCode
ContactExtenderBase._colOrgNr
ContactExtenderBase._colStop
ContactExtenderBase._colNoMail
ContactExtenderBase._colUpdatedBy
ContactExtenderBase._colUpdatedByFullName
ContactExtenderBase._colUpdatedDate
ContactExtenderBase._colRegisteredBy
ContactExtenderBase._colRegisteredByFullName
ContactExtenderBase._colRegisteredDate
ContactExtenderBase._colSource
ContactExtenderBase._colDeleted
ContactExtenderBase._colPhone
ContactExtenderBase._colActiveErpLinks
ContactExtenderBase._colDeletedDate
ContactExtenderBase._colMainContact
ContactExtenderBase.StandardNameDept()
ContactExtenderBase.Initialize(ContactExtenderBase.Features, string)
ContactExtenderBase.InnerModifyQuery()
ContactExtenderBase.GetNameAndDepartment(SoDataReader)
ContactExtenderBase.SetRestriction(params ArchiveRestrictionInfo[])
ContactExtenderBase.TicketPriority
ContactExtenderBase.DropStoppedContacts
TableExtenderBase<ContactTableInfo>._ourTable
TableExtenderBase<ContactTableInfo>.TableToExtend
TableExtenderBase<ContactTableInfo>.MainTableName
ExtenderBase<ContactTableInfo>.GetRankRestriction(FieldInfo)
ExtenderBase<ContactTableInfo>.StyleHintPrefix
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.SetDesiredColumns(params string[])
ExtensibleColumnsBase.SetOrderBy(ArchiveOrderByInfo[])
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.ProcessRestrictions()
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.RootQuery
ExtensibleColumnsBase.OrderBySlots
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 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
ExtenderBase<ContactTableInfo>.SetJoin()
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.

Implements

IArchiveProviderQueryMapping
IArchiveExtender
IArchiveProviderDoesExtend
IArchiveProviderHasColumns
IArchiveProviderExtensible

Extension Methods

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