Show / Hide Table of Contents

Class ParticipantsProvider

Archive list provider for the participants list of a booking (multi-person appointment)

Inheritance
Object
InMemoryProviderBase<ArchiveRow>
ParticipantsProvider
Implements
IArchiveProvider
IArchiveProviderHasRows
IArchiveProviderHasColumns
IArchiveProviderHasEntities
Inherited Members
InMemoryProviderBase<ArchiveRow>._entityHelper
InMemoryProviderBase<ArchiveRow>.Visible
InMemoryProviderBase<ArchiveRow>.Invisible
InMemoryProviderBase<ArchiveRow>.AllowOrderBy
InMemoryProviderBase<ArchiveRow>.DenyOrderBy
InMemoryProviderBase<ArchiveRow>.Options
InMemoryProviderBase<ArchiveRow>.RegisterEntity(ArchiveRowTypeInfo)
InMemoryProviderBase<ArchiveRow>.GetReader(String)
InMemoryProviderBase<ArchiveRow>.GetRows(String)
InMemoryProviderBase<ArchiveRow>.GetResultInformation()
InMemoryProviderBase<ArchiveRow>.SortData(List<ArchiveRow>)
InMemoryProviderBase<ArchiveRow>.Close()
InMemoryProviderBase<ArchiveRow>.SetPagingInfo(Int32, Int32)
InMemoryProviderBase<ArchiveRow>.GetAvailableColumns()
InMemoryProviderBase<ArchiveRow>.SetDesiredColumns(String[])
InMemoryProviderBase<ArchiveRow>.SetOrderBy(ArchiveOrderByInfo[])
InMemoryProviderBase<ArchiveRow>.GetAvailableEntities()
InMemoryProviderBase<ArchiveRow>.SetDesiredEntities(String[])
InMemoryProviderBase<ArchiveRow>.EntityHelper
InMemoryProviderBase<ArchiveRow>.ColumnHelper
Namespace: SuperOffice.CRM.ArchiveLists
Assembly: SoDataBase.dll
Syntax
[ArchiveProvider("Participants", 1073741823)]
public class ParticipantsProvider : InMemoryProviderBase<ArchiveRow>, IArchiveProvider, IArchiveProviderHasRows, IArchiveProviderHasColumns, IArchiveProviderHasEntities, IPlugin
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

Constructors

ParticipantsProvider()

Set up the instance; should only be called by factory class

Declaration
public ParticipantsProvider()
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

Fields

_colDateInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected ArchiveColumnInfo _colDateInformation
Field Value
Type Description
ArchiveColumnInfo
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

_colEndTimeInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected ArchiveColumnInfo _colEndTimeInformation
Field Value
Type Description
ArchiveColumnInfo
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

_colEndTimeUtcInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected ArchiveColumnInfo _colEndTimeUtcInformation
Field Value
Type Description
ArchiveColumnInfo
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

_colInhibitConflictsInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected ArchiveColumnInfo _colInhibitConflictsInformation
Field Value
Type Description
ArchiveColumnInfo
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

_colOwnerAssociateIdInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected ArchiveColumnInfo _colOwnerAssociateIdInformation
Field Value
Type Description
ArchiveColumnInfo
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

_colStartTimeInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected ArchiveColumnInfo _colStartTimeInformation
Field Value
Type Description
ArchiveColumnInfo
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

_colStartTimeUtcInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected ArchiveColumnInfo _colStartTimeUtcInformation
Field Value
Type Description
ArchiveColumnInfo
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

AppointmentRestrictionId

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string AppointmentRestrictionId = "appointmentRestrictionId"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

AssociateEmailsInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string AssociateEmailsInformation = "associateEmailsInformation"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

AssociateEntity

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string AssociateEntity = "associate"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

AssociateRestrictionId

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string AssociateRestrictionId = "associateRestrictionId"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

DateInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string DateInformation = "dateInformation"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

EmailParticipantEntity

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string EmailParticipantEntity = "emailParticipant"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

EndTimeInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string EndTimeInformation = "endTimeInformation"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

EndTimeUtcInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string EndTimeUtcInformation = "endTimeUtcInformation"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

ExternalPersonEntity

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string ExternalPersonEntity = "externalPerson"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

ExternalPersonRestrictionId

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string ExternalPersonRestrictionId = "externalPersonRestrictionId"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

GroupRestrictionId

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string GroupRestrictionId = "groupRestrictionId"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

InhibitConflictsInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string InhibitConflictsInformation = "inhibitConflictsInformation"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

OwnerAssociateIdInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string OwnerAssociateIdInformation = "ownerAssociateIdInformation"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

PersonEmailsInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string PersonEmailsInformation = "personEmailsInformation"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

ProviderName

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string ProviderName = "Participants"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

ResourceEntity

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string ResourceEntity = "resource"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

ResourceRestrictionId

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string ResourceRestrictionId = "resourceRestrictionId"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

StartTimeInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string StartTimeInformation = "startTimeInformation"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

StartTimeUtcInformation

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
public const string StartTimeUtcInformation = "startTimeUtcInformation"
Field Value
Type Description
String
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

Properties

BaseClassShouldFilterColumns

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected override bool BaseClassShouldFilterColumns { get; }
Property Value
Type Description
Boolean
Overrides
SuperOffice.CRM.ArchiveLists.InMemoryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.BaseClassShouldFilterColumns
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

BaseClassShouldFilterEntities

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected override bool BaseClassShouldFilterEntities { get; }
Property Value
Type Description
Boolean
Overrides
SuperOffice.CRM.ArchiveLists.InMemoryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.BaseClassShouldFilterEntities
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

BaseClassShouldPage

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected override bool BaseClassShouldPage { get; }
Property Value
Type Description
Boolean
Overrides
SuperOffice.CRM.ArchiveLists.InMemoryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.BaseClassShouldPage
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

BaseClassShouldSort

Archive list provider for the participants list of a booking (multi-person appointment)

Declaration
protected override bool BaseClassShouldSort { get; }
Property Value
Type Description
Boolean
Overrides
SuperOffice.CRM.ArchiveLists.InMemoryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.BaseClassShouldSort
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

Methods

GetResultData()

Get results for the base class, which will handle paging and other functionality

Declaration
protected override List<ArchiveRow> GetResultData()
Returns
Type Description
List<ArchiveRow>

List of rows in sorted order

Overrides
SuperOffice.CRM.ArchiveLists.InMemoryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.GetResultData()
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

SetRestriction(ArchiveRestrictionInfo[])

Handle restrictions; see class documentation for details. Basic consistency checks are made here, and we also determine whether we'll need booking-based data, explicit-based, or both.

Declaration
public override bool SetRestriction(params ArchiveRestrictionInfo[] rawRestrictions)
Parameters
Type Name Description
ArchiveRestrictionInfo[] rawRestrictions

Restrictions, used by the caller to dictate behaviour

Returns
Type Description
Boolean

true if at least one valid restriction was found

Overrides
SuperOffice.CRM.ArchiveLists.InMemoryProviderBase<SuperOffice.CRM.ArchiveLists.ArchiveRow>.SetRestriction(SuperOffice.CRM.ArchiveLists.ArchiveRestrictionInfo[])
Remarks

This provider, like the LinksProvider, offers two alternative ways of accessing the data. For existing appointments, the appointment_id is used as search criterion. This will retrieve all participants in this appointment, regardless of whether the given appointment is the mother or one of the slaves.

For appointments under construction, where the data have not yet been saved to the database, the caller must specify all data through the use of restrictions - some of which are then used for information, and some as keys to fetch actual person or associate/resource records from the database.
RestrictionMeaning
appointmentRestrictionIdSingle appointment id, using the = operator. This restriction is used on its own for fetching information from existing appointment records. The id may be of any appointment in the booking, and all participants will be fetched (limited by entity selection).
associateRestrictionIdOperator: IN, Value: array of associate id's. These will be returned as participants of type associate, if the associate entity has been selected.
groupRestrictionIdOperator: =, Value: group id. The group will be translated into associate id's, and these will be returned as participants of type associate, if the associate entity has been selected. This is an alternative to specifying the associates one by one and cannot be used together with the associateRestrictionId.
externalPersonRestrictionIdOperator: IN, Value: array of of person id's. These will be returned as participants of type external person, if the externalPerson entity has been selected. Note: Persons who are actually associates will be detected as such, and be returned as associates.
resourceRestrictionIdOperator: IN, Value: array of of associate id's. These will be returned as participants of type resource, if the resource entity has been selected.
personEmailsInformationOperator: IN, Value: array of of person id's. This restriction is optionally used together with externalPersonRestrictionId, and specifies which of the persons should have an email icon set.
associateEmailsInformationOperator: IN, Value: array of of associate id's. This restriction is optionally used together with associatePersonRestrictionId, and specifies which of the associates should have an email icon set. Note that resources do not get invitation emails, so there is no corresponding resourceEmailsInformation restriction.
startTimeInformationDatetime of appointment start, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
endTimeInformationDatetime of appointment end, needed when fetching data through the explicit restrictions (not appointmentRestrictionId) and if you want collision detection.
ownerAssociateIdInformationOperator: =, value: associate id. This is the Id of associate who is the owner of the whole booking. If this is not given, and appointmentRestrictionId is given, the system will look up the associate of the master booking record (mother_id = appointment_id) and use that as the owner. If ownerAssociateIdInformation is given, it overrides (disables) this lookup. If neither are given, then there is no owner associate. The owner associate always comes at the top of the list, and has the 'owner' row style hint.
inhibitConflictsInformationOperator: =, value: boolean. If you provide either an appointmentRestrictionId or startTime/EndTime, then conflicts will be detected. However, if the appointment is of type Free, then no conflict detetction will occur. To force 'free' behaviour on an under-construction appointment that does not have an appointment id, or on an appointment that is being changed, include this restriction with the value true. That will turn off conflict detection.
If you do not use the appointmentRestrictionId, you can instead specify external persons by a list (use the IN operator) of externalPersonRestrictionId, internal associates through a list of associateRestrictionId, and resources through resourceRestrictionId. All three restrictions can be given simultaneously, with an implied OR operator. In this case no appointment records are required or fetched.

Conflict detection is provided if the status column is requested. For non-saved data, this also requires the presence of startTimeInformation and endTimeInformation restrictions (dates in InvariantCulture format), so that the conflicts may be calculated.

Finally, the email status (should emails be sent for invitations and changes) is read from the database if the appointmentRestrictionId is used; if explicit person or associate restrictions are used, then email status information must be passed in through the associateEmailsInformation and personEmailsInformation restrictions. The value of each restriction is a list of associate resp. person id's who have the email flag set. If all this sounds complex - well, it is.

Being the tolerant sort, the provider will accept both associates and resources in each of associateRestrictionId and resourceRestrictionId, and internally sort out which is which. Similarly, if any of the person id's you happen to pass in through the externalPersonRestrictionId are actually associates, then that too will be sorted out.

Implements

IArchiveProvider
IArchiveProviderHasRows
IArchiveProviderHasColumns
IArchiveProviderHasEntities

Extension Methods

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