IceLib 4.0 SU 3 includes a number of features that have been added, improved, and changed. Each namespace in IceLib is broken out to list each of these changes, to make it easier to find places where existing IceLib integrations may need to be updated for major breaking changes, or places where integrations could be enhanced to use newly introduced features.
Jump to a section:
ININ.IceLib.Connection
A new RequestTimeoutException was added that is raised when a particular operation times out while waiting on the server to respond. An example might be due to a long running database query or a particular system being overloaded. The IceLib connection isn't necessarily going to disconnect, so the SessionDisconnectedException that was previously being raised in this case was potentially misleading.
The Session class now has a DisplayName property that contains a display name for the Session User, once connected to the server.
The Session class now has a SupportedMedia property that contains the SupportedMedia for the Session User, once connected to the server. This property is updated when SetStationConnectionMode(StationConnectionMode, Int32) or ChangeStation(StationSettings) is called.
ININ.IceLib.Connection.Extensions
A new ProblemReporter class was added that allows an application to submit a problem report along with a subject, description, and related files.
The CustomProfile class was expanded to support application based settings.
The ProfileItem class was expanded to support application based settings with a new ProfileItem(String, String, String) constructor that uses a String value instead of an Object value.
ININ.IceLib.Configuration
All classes derived from ConfigurationObject now have a IsNewObject property. All classes derived from ListConfigurationObject now have a OriginalConfigurationId property.
All classes derived from ConfigurationProperty<(Of <(<'TPropertyEnum>)>)> now have IsCreateOnly and IsReadOnly properties.
Support was added for image resources via the ImageResourceConfigurationList and ImageResourceCategoryConfigurationList classes and supporting types. It was also added to UserAdministrativeRightsProperties<(Of <(<'TConfigurationObject, TPropertyEnum>)>)> and AccessControlGroupConfiguration.
Support was added for recording beep tone configuration via the RecordingBeepToneConfigurationList class.
The WorkgroupConfiguration class was extended with CaptureInRecordings, PlayToExternalPartiesOnly, RecordingBeepTones, SelectedTone, and UseRecordingTones properties.
The ProblemReporterConfigurationContainer and ProblemReporterConfiguration classes were added to allow access to configuration settings for the ProblemReporter functionality. See the ProblemReporter class for more information about the ProblemReporter functionality.
The UserAccessRightsProperties<(Of <(<'TConfigurationObject, TPropertyEnum>)>)> class was expanded with several Optimizer access rights. The UserSecurityRightsProperties<(Of <(<'TConfigurationObject, TPropertyEnum>)>)> class was expanded with ProblemReporter and Optimizer rights. The UserAdministrativeRightsProperties<(Of <(<'TConfigurationObject, TPropertyEnum>)>)> class was expanded with a ProblemReporter right.
Client template support was added via the ClientTemplateConfigurationList, ClientTemplateConfiguration, ClientTemplatePublishResult, ClientTemplateResource, and ClientTemplate classes. Additionally, support for publishing templates was added to the UserConfiguration, RoleConfiguration, and WorkgroupConfiguration classes via the PublishClientTemplate methods. A user's client templates were exposed via ClientTemplates. Finally, related rights were added as CanPublishClientTemplates and CanManageClientTemplates.
ININ.IceLib.Directories
The ContactEntry class was expanded with ContactSources, ExternalContactEntries, and Skills properties and related supporting types were added too. These additions apply to derived classes EditableContactEntry and TrackerContactEntry as well.
The DirectoryConfiguration, ContactDirectory and DirectoryEventArgs<(Of <(<'TWatchedObject>)>)> classes were expanded with properties to identify pending load information. DirectoryConfiguration now has the Pending property to identify any PendingDirectoryGroupings that are pending. Pending meaning that the Interaction Center server has yet to determine any directories that match the grouping identified. ContactDirectory now has the PendingStatus property to identify if the contacts for the directory are pending to be loaded or not. DirectoryEventArgs<(Of <(<'TWatchedObject>)>)> now has the Pending property to identify the pending status, if any, of either directory metadata or directory contact entries depending on if the event is sent from DirectoryConfigurationChanged or ContactDirectoryChanged respectively.
ININ.IceLib.Interactions
The CallbackInteraction class was expanded with a CallbackCompletionDisplay property. It was also added to CallbackInteractionAttributeName.
The ChatInteraction class was expanded with a SendFile(Stream, String) method overload that accepts a Stream. The EmailInteraction class was expanded with DownloadFileAttachment(EmailFileAttachment, Stream) and UploadFileAttachment(Stream, String) method overloads that accept a Stream.
ININ.IceLib.People
The UserAccessListsSettings and UserAccessListsAttributes classes were expanded with several Optimizer access rights. The UserRightsSettings and UserRightsAttributes classes were expanded with ProblemReporter and Optimizer rights.
The UserRightsSettings class was expanded with CanSecureRecordingPauseInteractions and CanShowSecureRecordingPauseButton.
ININ.IceLib.QualityManagement
The ScreenRecorder class was expanded with support to PauseRecordings(String) and ResumeRecordings(String).
ININ.IceLib.Data.TransactionBuilder
Support was added for "out of band" queries to support larger result sets. The out of band options are available via the TransactionData class properties ForceOutOfBand, CompletedAction, UserState, TransactionToken, and WasOutOfBandUsed. A TransactionManager class was also added for this namespace, with options for cancelling a transaction and for getting the status of a transaction. The TransactionClient class can now be constructed with a TransactionManager.