Grooper.Messaging.ExchangeBinding

Defines a connection to the Microsoft Exchange mail server platform. Exposes mail messages, appointments, contacts, and tasks for one or more mail accounts. Connectivity is via Exchange Web Services (EWS), which supports on-premises deployments of Microsoft Exchange, as well as Exchange Online.

Content Types

This binding implements the following 4 document types.
Type NameFile TypeDescription
Appointmenttext/calendar (.ics)Represents a calendar appointment.
Contacttext/x-vcard (.vcf)Represents a contact record.
Messagemessage/rfc822 (.eml)Represents a mail message.
Tasktext/plain (.txt)Represents a task.

Search Functions

All document types are full-text searchable, and each type defines queryable properties which are specific to its application. For example, the Message type defines queryable properties which are relevant to an e-mail message, such as "Sender", "Subject", and etc. Appointments, Contacts, and Tasks contain their own unique set of queryable properties.

The base type "Item", from which all 4 document types inherit, is also full-text searchable, and defines a common set of queryable properties which are common to all 4 types.

Full text searches find exact substrings in the body of the document. There is no support for operators such as AND / OR inside a CONTAINS() predicate. To implement complex full-text searches, use multiple CONTAINS() predicates.


Inherits from: Grooper.CMIS.CustomBinding

Constructors

Signature Description
New (Owner As CmisConnection)
Parameters
Owner
          Type: CmisConnection
          

Fields

Field Name Field Type Description
Database As Grooper.GrooperDb Grooper.GrooperDb

Properties

Property Name Property Type Description
AuthenticationMethod Grooper.CMIS.HttpAuthenticationMethod Specifies the method used to authenticate user credentials. When using Basic Authentication, enter the e-mail address as the user name.
HasReferenceProperties System.Boolean Returns true if the object has properties which reference Grooper Node objects.
HostName System.String The host name or IP address of the Microsoft Exchange server. For example: 'outlook.office365.com' is the hostname for Exchange Online. If no value is specified, auto-discovery will be used to obtain the host name from the email address provided.
IsEmpty System.Boolean Returns true if all properties with a ViewableAttribute are set to their default value.
IsWriteable System.Boolean Returns true if the object is writable, or false if it is not.
MailboxList System.Collections.Generic.List(Of T) Specifies a list of mailboxes to be mounted as repositories. This list should contain one email address per line. The login account used must have access to each mailbox listed. Refer to Microsoft documentation on configuring delegate access when connecting to mailboxes other than the login user's primary email account.
Owner Grooper.ConnectedObject Returns the node that owns the connected object, if any.
OwnerNode Grooper.GrooperNode Returns the node that owns the connected object, if any.
Root Grooper.GrooperRoot Returns the root node
Timeout System.Int32 The connection timeout, in seconds.
UseSearchFolder System.Boolean Enables the use of an Exchange "Search Folder" to enhance query functionality. When enabled, a search folder provides two primary advantages:
  1. Searches execute fast.
  2. A total count of matching items will be returned.

Grooper will automatically create a Search Folder named "Grooper Search" which indexes all mail items below the root of the message store. The search folder will be created automatically the first time a query is executed, or can be created manually using the Exchange - Rebuild Search Folder command, available on the right-click menu from the Property Grid.

When a search is performed, the Search Folder will be used only when the following conditions are true:

  • The content type being queried is "Message".
  • The query applies to the entire message store (i.e. no IN_FOLDER or IN_TREE predicates have been used).
  • The WHERE clause does not include a CONTAINS Predicate.

Methods

Method Name Description
CancelCheckOut(repositoryId As String, objectId As String, extension As IExtensionsData)
Parameters
repositoryId
          Type: String
          
 
objectId
          Type: String
          
 
extension
          Type: IExtensionsData
          
CheckIn(repositoryId As String, objectId As String&, major As Nullable(Of Boolean), properties As IProperties, contentStream As IContentStream, checkinComment As String, policies As IList(Of String), addAces As IAcl, removeAces As IAcl, extension As IExtensionsData)
Parameters
repositoryId
          Type: String
          
 
objectId
          Type: String&
          
 
major
          Type: Nullable`1
          
 
properties
          Type: IProperties
          
 
contentStream
          Type: IContentStream
          
 
checkinComment
          Type: String
          
 
policies
          Type: IList`1
          
 
addAces
          Type: IAcl
          
 
removeAces
          Type: IAcl
          
 
extension
          Type: IExtensionsData
          
CheckOut(repositoryId As String, objectId As String&, extension As IExtensionsData, contentCopied As Nullable`1&)
Parameters
repositoryId
          Type: String
          
 
objectId
          Type: String&
          
 
extension
          Type: IExtensionsData
          
 
contentCopied
          Type: Nullable`1&
          
ClearAllCaches()
ClearRepositoryCache(repositoryId As String)
Parameters
repositoryId
          Type: String
          
CreateDocument(RepId As String, Props As IProperties, FolderId As String, ContentStream As IContentStream, versioningState As Nullable(Of VersioningState), policies As IList(Of String), addAces As IAcl, removeAces As IAcl, extension As IExtensionsData) As String
Parameters
RepId
          Type: String
          
 
Props
          Type: IProperties
          
 
FolderId
          Type: String
          
 
ContentStream
          Type: IContentStream
          
 
versioningState
          Type: Nullable`1
          
 
policies
          Type: IList`1
          
 
addAces
          Type: IAcl
          
 
removeAces
          Type: IAcl
          
 
extension
          Type: IExtensionsData
          
CreateDocumentTypeDefinition(TypeId As String, Name As String, LocalName As String, ParentTypeId As String) As DocumentTypeDefinition
Parameters
TypeId
          Type: String
          
 
Name
          Type: String
          
 
LocalName
          Type: String
          
 
ParentTypeId
          Type: String
          
CreateFolder(RepId As String, Props As IProperties, FolderId As String, policies As IList(Of String), addAces As IAcl, removeAces As IAcl, extension As IExtensionsData) As String
Parameters
RepId
          Type: String
          
 
Props
          Type: IProperties
          
 
FolderId
          Type: String
          
 
policies
          Type: IList`1
          
 
addAces
          Type: IAcl
          
 
removeAces
          Type: IAcl
          
 
extension
          Type: IExtensionsData
          
CreateFolderTypeDefinition(TypeId As String, Name As String, LocalName As String, ParentTypeId As String) As FolderTypeDefinition
Parameters
TypeId
          Type: String
          
 
Name
          Type: String
          
 
LocalName
          Type: String
          
 
ParentTypeId
          Type: String
          
CreateIndexedPD(ExPd As PropertyDefinition, IxPd As IndexedPropertyDefinition, AqsName As String) As PropertyDefinition
Parameters
ExPd
          Type: PropertyDefinition
          
 
IxPd
          Type: IndexedPropertyDefinition
          
 
AqsName
          Type: String
          
CreateLinkedCmisPD(ExPd As PropertyDefinition, AqsName As String, CmisId As String) As PropertyDefinition
Parameters
ExPd
          Type: PropertyDefinition
          
 
AqsName
          Type: String
          
 
CmisId
          Type: String
          
CreateLinkedPD(ExPd As PropertyDefinition, AqsName As String) As PropertyDefinition
Parameters
ExPd
          Type: PropertyDefinition
          
 
AqsName
          Type: String
          
CreateLinkedPD(ExPd As PropertyDefinition, AqsName As String, Options As PdOptions) As PropertyDefinition
Parameters
ExPd
          Type: PropertyDefinition
          
 
AqsName
          Type: String
          
 
Options
          Type: PdOptions
          
CreatePD(Id As String, Type As PropertyType, Updatability As Updatability, Options As PdOptions) As PropertyDefinition
Parameters
Id
          Type: String
          
 
Type
          Type: PropertyType
          
 
Updatability
          Type: Updatability
          
 
Options
          Type: PdOptions
          
CreatePropDef(Id As String, Type As PropertyType, Updatability As Updatability, Options As PdOptions) As PropertyDefinition
Parameters
Id
          Type: String
          
 
Type
          Type: PropertyType
          
 
Updatability
          Type: Updatability
          
 
Options
          Type: PdOptions
          
CreatePropDef(Id As String, DisplayName As String, Type As PropertyType, Updatability As Updatability, Options As PdOptions) As PropertyDefinition
Parameters
Id
          Type: String
          
 
DisplayName
          Type: String
          
 
Type
          Type: PropertyType
          
 
Updatability
          Type: Updatability
          
 
Options
          Type: PdOptions
          
CreatePropDef(Id As String, DisplayName As String, LocalName As String, Type As PropertyType, Updatability As Updatability, Options As PdOptions) As PropertyDefinition
Parameters
Id
          Type: String
          
 
DisplayName
          Type: String
          
 
LocalName
          Type: String
          
 
Type
          Type: PropertyType
          
 
Updatability
          Type: Updatability
          
 
Options
          Type: PdOptions
          
CreatePropDef(Id As String, DisplayName As String, QueryName As String, LocalName As String, Type As PropertyType, Updatability As Updatability, Options As PdOptions) As PropertyDefinition
Parameters
Id
          Type: String
          
 
DisplayName
          Type: String
          
 
QueryName
          Type: String
          
 
LocalName
          Type: String
          
 
Type
          Type: PropertyType
          
 
Updatability
          Type: Updatability
          
 
Options
          Type: PdOptions
          
CreateProperty(Id As String, Type As PropertyType, Value As Object) As IPropertyData
Parameters
Id
          Type: String
          
 
Type
          Type: PropertyType
          
 
Value
          Type: Object
          
CreateProperty(Id As String, Name As String, Type As PropertyType, Value As Object) As IPropertyData
Parameters
Id
          Type: String
          
 
Name
          Type: String
          
 
Type
          Type: PropertyType
          
 
Value
          Type: Object
          
CreateProperty(Id As String, Type As PropertyType, Values() As Object()) As IPropertyData
Parameters
Id
          Type: String
          
 
Type
          Type: PropertyType
          
 
Values
          Type: Object
          
CreateProperty(Id As String, Name As String, Type As PropertyType, Values() As Object()) As IPropertyData
Parameters
Id
          Type: String
          
 
Name
          Type: String
          
 
Type
          Type: PropertyType
          
 
Values
          Type: Object
          
DeleteObject(RepId As String, ObjectId As String, AllVersions As Nullable(Of Boolean), extension As IExtensionsData)
Parameters
RepId
          Type: String
          
 
ObjectId
          Type: String
          
 
AllVersions
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
DeleteTree(RepId As String, FolderId As String, allVersions As Nullable(Of Boolean), unfileObjects As Nullable(Of UnfileObject), continueOnFailure As Nullable(Of Boolean), extension As IExtensionsData) As IFailedToDeleteData
Parameters
RepId
          Type: String
          
 
FolderId
          Type: String
          
 
allVersions
          Type: Nullable`1
          
 
unfileObjects
          Type: Nullable`1
          
 
continueOnFailure
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
Dispose()
GetAclService() As IAclService
GetAllowableActions(repositoryId As String, objectId As String, extension As IExtensionsData) As IAllowableActions
Parameters
repositoryId
          Type: String
          
 
objectId
          Type: String
          
 
extension
          Type: IExtensionsData
          
GetBaseDocumentPropDefs(Inherited As Boolean, IncludeVersioning As Boolean) As IEnumerable(Of IPropertyDefinition)
Parameters
Inherited
          Type: Boolean
          
 
IncludeVersioning
          Type: Boolean
          
GetBaseFolderPropDefs(Inherited As Boolean) As IEnumerable(Of IPropertyDefinition)
Parameters
Inherited
          Type: Boolean
          
GetChildren(repositoryId As String, folderId As String, filter As String, orderBy As String, includeAllowableActions As Nullable(Of Boolean), includeRelationships As Nullable(Of IncludeRelationships), renditionFilter As String, includePathSegment As Nullable(Of Boolean), maxItems As Nullable(Of BigInteger), skipCount As Nullable(Of BigInteger), extension As IExtensionsData) As IObjectInFolderList
Parameters
repositoryId
          Type: String
          
 
folderId
          Type: String
          
 
filter
          Type: String
          
 
orderBy
          Type: String
          
 
includeAllowableActions
          Type: Nullable`1
          
 
includeRelationships
          Type: Nullable`1
          
 
renditionFilter
          Type: String
          
 
includePathSegment
          Type: Nullable`1
          
 
maxItems
          Type: Nullable`1
          
 
skipCount
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
GetContentStream(repositoryId As String, objectId As String, streamId As String, offset As Nullable(Of BigInteger), length As Nullable(Of BigInteger), extension As IExtensionsData) As IContentStream
Parameters
repositoryId
          Type: String
          
 
objectId
          Type: String
          
 
streamId
          Type: String
          
 
offset
          Type: Nullable`1
          
 
length
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
GetDescendants(repositoryId As String, folderId As String, depth As Nullable(Of BigInteger), filter As String, includeAllowableActions As Nullable(Of Boolean), includeRelationships As Nullable(Of IncludeRelationships), renditionFilter As String, includePathSegment As Nullable(Of Boolean), extension As IExtensionsData) As IList(Of IObjectInFolderContainer)
Parameters
repositoryId
          Type: String
          
 
folderId
          Type: String
          
 
depth
          Type: Nullable`1
          
 
filter
          Type: String
          
 
includeAllowableActions
          Type: Nullable`1
          
 
includeRelationships
          Type: Nullable`1
          
 
renditionFilter
          Type: String
          
 
includePathSegment
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
GetDiscoveryService() As IDiscoveryService
GetFolderIcon(TypeId As String) As Image
Parameters
TypeId
          Type: String
          
GetFolderParent(repositoryId As String, folderId As String, filter As String, extension As IExtensionsData) As IObjectData
Parameters
repositoryId
          Type: String
          
 
folderId
          Type: String
          
 
filter
          Type: String
          
 
extension
          Type: IExtensionsData
          
GetFolderPath(oExchangeService As ExchangeService, oFolderId As FolderId, sFolderPath As String&) As Boolean
Parameters
oExchangeService
          Type: ExchangeService
          
 
oFolderId
          Type: FolderId
          
 
sFolderPath
          Type: String&
          
GetFolderPath(oFolder As Folder, sFolderPath As String&) As Boolean
Parameters
oFolder
          Type: Folder
          
 
sFolderPath
          Type: String&
          
GetFolderTree(repositoryId As String, folderId As String, depth As Nullable(Of BigInteger), filter As String, includeAllowableActions As Nullable(Of Boolean), includeRelationships As Nullable(Of IncludeRelationships), renditionFilter As String, includePathSegment As Nullable(Of Boolean), extension As IExtensionsData) As IList(Of IObjectInFolderContainer)
Parameters
repositoryId
          Type: String
          
 
folderId
          Type: String
          
 
depth
          Type: Nullable`1
          
 
filter
          Type: String
          
 
includeAllowableActions
          Type: Nullable`1
          
 
includeRelationships
          Type: Nullable`1
          
 
renditionFilter
          Type: String
          
 
includePathSegment
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
GetMultiFilingService() As IMultiFilingService
GetNavigationService() As INavigationService
GetObject(repositoryId As String, objectId As String, filter As String, includeAllowableActions As Nullable(Of Boolean), includeRelationships As Nullable(Of IncludeRelationships), renditionFilter As String, includePolicyIds As Nullable(Of Boolean), includeAcl As Nullable(Of Boolean), extension As IExtensionsData) As IObjectData
Parameters
repositoryId
          Type: String
          
 
objectId
          Type: String
          
 
filter
          Type: String
          
 
includeAllowableActions
          Type: Nullable`1
          
 
includeRelationships
          Type: Nullable`1
          
 
renditionFilter
          Type: String
          
 
includePolicyIds
          Type: Nullable`1
          
 
includeAcl
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
GetObjectByPath(RepId As String, Path As String, FilterString As String, includeAllowableActions As Nullable(Of Boolean), includeRelationships As Nullable(Of IncludeRelationships), renditionFilter As String, includePolicyIds As Nullable(Of Boolean), includeAcl As Nullable(Of Boolean), extension As IExtensionsData) As IObjectData
Parameters
RepId
          Type: String
          
 
Path
          Type: String
          
 
FilterString
          Type: String
          
 
includeAllowableActions
          Type: Nullable`1
          
 
includeRelationships
          Type: Nullable`1
          
 
renditionFilter
          Type: String
          
 
includePolicyIds
          Type: Nullable`1
          
 
includeAcl
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
GetObjectService() As IObjectService
GetParent(RepId As String, ObjectId As String, FilterString As String, IncludeAllowableActions As Boolean) As IObjectData
Parameters
RepId
          Type: String
          
 
ObjectId
          Type: String
          
 
FilterString
          Type: String
          
 
IncludeAllowableActions
          Type: Boolean
          
GetPolicyService() As IPolicyService
GetProperties(RepId As String, ObjectId As String, filter As String, extension As IExtensionsData) As IProperties
Parameters
RepId
          Type: String
          
 
ObjectId
          Type: String
          
 
filter
          Type: String
          
 
extension
          Type: IExtensionsData
          
GetProperties() As PropertyDescriptorCollection
GetReferences() As List(Of GrooperNode) Returns a list of GrooperNode objects referenced in the properties of this object.
GetRelationshipService() As IRelationshipService
GetRepositoryInfo(RepId As String, extension As IExtensionsData) As IRepositoryInfo
Parameters
RepId
          Type: String
          
 
extension
          Type: IExtensionsData
          
GetRepositoryInfos(extension As IExtensionsData) As IList(Of IRepositoryInfo)
Parameters
extension
          Type: IExtensionsData
          
GetRepositoryService() As IRepositoryService
GetTypeChildren(repositoryId As String, typeId As String, includePropertyDefinitions As Nullable(Of Boolean), maxItems As Nullable(Of BigInteger), skipCount As Nullable(Of BigInteger), extension As IExtensionsData) As ITypeDefinitionList
Parameters
repositoryId
          Type: String
          
 
typeId
          Type: String
          
 
includePropertyDefinitions
          Type: Nullable`1
          
 
maxItems
          Type: Nullable`1
          
 
skipCount
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
GetTypeDefinition(repositoryId As String, typeId As String, extension As IExtensionsData) As ITypeDefinition
Parameters
repositoryId
          Type: String
          
 
typeId
          Type: String
          
 
extension
          Type: IExtensionsData
          
GetTypeDescendants(repositoryId As String, typeId As String, depth As Nullable(Of BigInteger), includePropertyDefinitions As Nullable(Of Boolean), extension As IExtensionsData) As IList(Of ITypeDefinitionContainer)
Parameters
repositoryId
          Type: String
          
 
typeId
          Type: String
          
 
depth
          Type: Nullable`1
          
 
includePropertyDefinitions
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
GetVersioningService() As IVersioningService
Initialize(session As IBindingSession)
Parameters
session
          Type: IBindingSession
          
IsPropertyEnabled(PropertyName As String) As Nullable(Of Boolean) Defines whether a property is currently enabled.
Parameters
PropertyName
          Type: String
          The name of the property to determine the enabled state for.
IsPropertyVisible(PropertyName As String) As Nullable(Of Boolean) Defines whether a property is currently visible.
Parameters
PropertyName
          Type: String
          The name of the property to determine the visible state for.
IsType(Type As Type) As Boolean Returns true if the object is of the type specified, or if it derives from the type specfied.
Parameters
Type
          Type: Type
          The type to check.
MoveObject(RepId As String, ObjectId As String&, TargetFolderId As String, SourceFolderId As String, extension As IExtensionsData)
Parameters
RepId
          Type: String
          
 
ObjectId
          Type: String&
          
 
TargetFolderId
          Type: String
          
 
SourceFolderId
          Type: String
          
 
extension
          Type: IExtensionsData
          
Query(RepId As String, statement As String, searchAllVersions As Nullable(Of Boolean), includeAllowableActions As Nullable(Of Boolean), includeRelationships As Nullable(Of IncludeRelationships), renditionFilter As String, maxItems As Nullable(Of BigInteger), skipCount As Nullable(Of BigInteger), extension As IExtensionsData) As IObjectList
Parameters
RepId
          Type: String
          
 
statement
          Type: String
          
 
searchAllVersions
          Type: Nullable`1
          
 
includeAllowableActions
          Type: Nullable`1
          
 
includeRelationships
          Type: Nullable`1
          
 
renditionFilter
          Type: String
          
 
maxItems
          Type: Nullable`1
          
 
skipCount
          Type: Nullable`1
          
 
extension
          Type: IExtensionsData
          
Serialize() As String Serializes the object.
SetContentStream(repositoryId As String, objectId As String&, overwriteFlag As Nullable(Of Boolean), changeToken As String&, contentStream As IContentStream, extension As IExtensionsData)
Parameters
repositoryId
          Type: String
          
 
objectId
          Type: String&
          
 
overwriteFlag
          Type: Nullable`1
          
 
changeToken
          Type: String&
          
 
contentStream
          Type: IContentStream
          
 
extension
          Type: IExtensionsData
          
SetDatabase(Database As GrooperDb) Sets the database connection of the object.
Parameters
Database
          Type: GrooperDb
          
SetOwner(Owner As ConnectedObject, SkipInitialization As Boolean) Sets the owner of the connected object with another object that implements the IConnected interface.
Parameters
Owner
          Type: ConnectedObject
          
 
SkipInitialization
          Type: Boolean
          
ToString() As String Returns a string value representation of the connected object.
UpdateProperties(RepId As String, ObjectId As String&, ChangeToken As String&, Props As IProperties, extension As IExtensionsData)
Parameters
RepId
          Type: String
          
 
ObjectId
          Type: String&
          
 
ChangeToken
          Type: String&
          
 
Props
          Type: IProperties
          
 
extension
          Type: IExtensionsData
          
ValidateProperties() As ValidationErrorList Validates the properties of the object, returning a list of validation errors.