Show / Hide Table of Contents

Class HasConsentExtender

Extender that adds functionality to read/test whether a person has a certain Consent. Virtual columns are generated for each ConsentPurpose

Inheritance
object
ExtensibleColumnsBase
ExtenderBase<ConsentPersonTableInfo>
TableExtenderBase<ConsentPersonTableInfo>
HasConsentExtender
Implements
IArchiveProviderQueryMapping
IArchiveExtender
IArchiveProviderDoesExtend
IArchiveProviderHasColumns
IArchiveProviderExtensible
Inherited Members
TableExtenderBase<ConsentPersonTableInfo>._ourTable
TableExtenderBase<ConsentPersonTableInfo>.ModifyQuery()
TableExtenderBase<ConsentPersonTableInfo>.MainTableName
ExtenderBase<ConsentPersonTableInfo>.GetRankRestriction(FieldInfo)
ExtenderBase<ConsentPersonTableInfo>.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.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
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 class HasConsentExtender : TableExtenderBase<ConsentPersonTableInfo>, IArchiveProviderQueryMapping, IArchiveExtender, IArchiveProviderDoesExtend, IArchiveProviderHasColumns, IArchiveProviderExtensible
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

Constructors

HasConsentExtender(string)

For each ConsentPurpose with key #XYZ, generate a boolean column called hasXyxConsent (note casing); inherit the name and description from the consent purpose entry

Declaration
public HasConsentExtender(string iconHint = "Person")
Parameters
Type Name Description
string iconHint
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

Fields

IsEmarketingColName

Extender that adds functionality to read/test whether a person has a certain Consent. Virtual columns are generated for each ConsentPurpose

Declaration
public const string IsEmarketingColName = "isMailingRecipient"
Field Value
Type Description
string
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

_colIsMailingRecipient

Extender that adds functionality to read/test whether a person has a certain Consent. Virtual columns are generated for each ConsentPurpose

Declaration
protected ArchiveColumnInfo _colIsMailingRecipient
Field Value
Type Description
ArchiveColumnInfo
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

_mailingConsentPersonTableInfo

Extender that adds functionality to read/test whether a person has a certain Consent. Virtual columns are generated for each ConsentPurpose

Declaration
protected ConsentPersonTableInfo _mailingConsentPersonTableInfo
Field Value
Type Description
ConsentPersonTableInfo
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

_strictGDPRMode

Extender that adds functionality to read/test whether a person has a certain Consent. Virtual columns are generated for each ConsentPurpose

Declaration
protected bool _strictGDPRMode
Field Value
Type Description
bool
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

Properties

TableToExtend

This extender cannot itself be meaningfully extended

Declaration
public override TableInfo TableToExtend { get; }
Property Value
Type Description
TableInfo
Overrides
TableExtenderBase<ConsentPersonTableInfo>.TableToExtend
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

Methods

ConsentKeyToColumnName(string)

Transform a consent purpose key like #EMARKETING into the column name hasEmarketingConsent

Declaration
public static string ConsentKeyToColumnName(string consentPurpose)
Parameters
Type Name Description
string consentPurpose
Returns
Type Description
string
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

InnerModifyQuery()

For each column actually used, generate a join to its corresponding (cached) tableinfo, bind to custom restriction handling

Declaration
protected override void InnerModifyQuery()
Overrides
ExtenderBase<ConsentPersonTableInfo>.InnerModifyQuery()
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

InnerPopulateRowFromReader(SoDataReader, ArchiveRow)

Determine whether consent exists, and retrieve the ConsentPerson id so a good tooltip can be generated

Declaration
protected override void InnerPopulateRowFromReader(SoDataReader reader, ArchiveRow row)
Parameters
Type Name Description
SoDataReader reader
ArchiveRow row
Overrides
TableExtenderBase<ConsentPersonTableInfo>.InnerPopulateRowFromReader(SoDataReader, ArchiveRow)
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

SetJoin()

Dummy - just check that our parent is someone who offers a PersonTableInfo

Declaration
protected override ConsentPersonTableInfo SetJoin()
Returns
Type Description
ConsentPersonTableInfo
Overrides
ExtenderBase<ConsentPersonTableInfo>.SetJoin()
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

WithdrawnKeyToColumnName(string)

Extender that adds functionality to read/test whether a person has a certain Consent. Virtual columns are generated for each ConsentPurpose

Declaration
public static string WithdrawnKeyToColumnName(string consentPurpose)
Parameters
Type Name Description
string consentPurpose
Returns
Type Description
string
Remarks

A consent is present if a) there is ConsentPerson row between the person and the given ConsentPurpose, AND b) the LegalBaseId is not the special "Withdrawn" item, which means active denial of consent.

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