Show / Hide Table of Contents

Class DynamicPersonExtender

Customized dynamic extender for the Person table, with some special features

Inheritance
object
ExtensibleColumnsBase
ExtenderBase<TableInfo>
TableExtenderBase<TableInfo>
DynamicExtenderBase
DynamicExtender
DynamicPersonExtender
Implements
IArchiveProviderQueryMapping
IArchiveDynamicExtender
IArchiveExtender
IArchiveProviderDoesExtend
IArchiveProviderHasColumns
IArchiveProviderExtensible
IArchiveProviderDynamicExtend
Inherited Members
DynamicExtenderBase.ToString()
DynamicExtenderBase.SetJoin()
DynamicExtenderBase.SetDynamicJoin(string, string, ArchiveJoinType)
DynamicExtenderBase.JoinTableName
DynamicExtenderBase.JoinFieldName
DynamicExtenderBase.JoinType
DynamicExtenderBase.MainTableName
DynamicExtenderBase.TableToExtend
TableExtenderBase<TableInfo>._ourTable
TableExtenderBase<TableInfo>.ModifyQuery()
ExtenderBase<TableInfo>.GetRankRestriction(FieldInfo)
ExtenderBase<TableInfo>.StyleHintPrefix
ExtensibleColumnsBase._orderBy
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.SetOrderBy(ArchiveOrderByInfo[])
ExtensibleColumnsBase.SetOrderByMapping(string, params string[])
ExtensibleColumnsBase.SetOrderByMapping(ArchiveColumnInfo, params ArchiveColumnInfo[])
ExtensibleColumnsBase.SetPrefixes(string, string)
ExtensibleColumnsBase.SetLocalAbsolutePrefixes(string, string)
ExtensibleColumnsBase.SetIconHint(string)
ExtensibleColumnsBase.SetRestriction(params ArchiveRestrictionInfo[])
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
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
[DynamicExtender("person")]
public class DynamicPersonExtender : DynamicExtender, IArchiveProviderQueryMapping, IArchiveDynamicExtender, IArchiveExtender, IArchiveProviderDoesExtend, IArchiveProviderHasColumns, IArchiveProviderExtensible, IArchiveProviderDynamicExtend
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

Constructors

DynamicPersonExtender()

Construct and set up all links and subextenders

Declaration
public DynamicPersonExtender()
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

Fields

TableName

Name of handled table

Declaration
public const string TableName = "person"
Field Value
Type Description
string
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

_FirstName

Customized dynamic extender for the Person table, with some special features

Declaration
protected ArchiveColumnInfo _FirstName
Field Value
Type Description
ArchiveColumnInfo
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

_LastName

Customized dynamic extender for the Person table, with some special features

Declaration
protected ArchiveColumnInfo _LastName
Field Value
Type Description
ArchiveColumnInfo
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

_MiddleName

Customized dynamic extender for the Person table, with some special features

Declaration
protected ArchiveColumnInfo _MiddleName
Field Value
Type Description
ArchiveColumnInfo
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

_Position

Customized dynamic extender for the Person table, with some special features

Declaration
protected ArchiveColumnInfo _Position
Field Value
Type Description
ArchiveColumnInfo
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

_Rank

Customized dynamic extender for the Person table, with some special features

Declaration
protected ArchiveColumnInfo _Rank
Field Value
Type Description
ArchiveColumnInfo
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

_colFullName

Full name columns

Declaration
protected ArchiveColumnInfo _colFullName
Field Value
Type Description
ArchiveColumnInfo
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

_colPhone

Phone number column

Declaration
protected ArchiveColumnInfo _colPhone
Field Value
Type Description
ArchiveColumnInfo
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

_colSupportLanguage

Preferred communication language with this person

Declaration
protected ArchiveColumnInfo _colSupportLanguage
Field Value
Type Description
ArchiveColumnInfo
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

_colTicketPriority

Service priority for a person

Declaration
protected ArchiveColumnInfo _colTicketPriority
Field Value
Type Description
ArchiveColumnInfo
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

Methods

InnerModifyQuery()

Override: Handle needed fields for fullName, address, and phone

Declaration
protected override void InnerModifyQuery()
Overrides
DynamicExtenderBase.InnerModifyQuery()
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

InnerPopulateRowFromReader(SoDataReader, ArchiveRow)

Override: Populate fullname through helper, and address through helper. Phone is handled by root base class

Declaration
protected override void InnerPopulateRowFromReader(SoDataReader reader, ArchiveRow row)
Parameters
Type Name Description
SoDataReader reader
ArchiveRow row
Overrides
DynamicExtenderBase.InnerPopulateRowFromReader(SoDataReader, ArchiveRow)
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

SetDesiredColumns(params string[])

Override: Handle address columns through helper

Declaration
public override void SetDesiredColumns(params string[] columnIds)
Parameters
Type Name Description
string[] columnIds
Overrides
ExtensibleColumnsBase.SetDesiredColumns(params string[])
Remarks

The following special fields are handled:
fullName - gives persons full, formatted name
phone/formattedNumber - gives the first phone number for the person (first of direct, mobile, private, pager, fax - in this order)
supportLanguage - Preferred communication language with this person
emailAddress - email address with rank = 1
address/ a number of fields: addressId, line1 - line3, county, city, zip; includes fallback logic to contact address if no person address

Most of the logic is taken from the PersonExtenderHelper, to avoid duplication of significant code with the PersonExtenderBase.

Implements

IArchiveProviderQueryMapping
IArchiveDynamicExtender
IArchiveExtender
IArchiveProviderDoesExtend
IArchiveProviderHasColumns
IArchiveProviderExtensible
IArchiveProviderDynamicExtend

Extension Methods

EnumUtil.MapEnums<From, To>(From)
Converters.MapEnums<From, To>(From)
ObjectExtensions.AssignByReflection<T>(T, T)
ObjectExtensions.GraphCopy<T>(T)
© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top