Namespace SuperOffice.CRM.Previews
Classes
AppointmentPreviewPlugin
ContactPreviewPlugin
DashboardPreviewPlugin
DocumentPreviewPlugin
FaqPreviewPlugin
PersonPreviewPlugin
Preview provider plugin for Person data. It retrieves various information about the person, including an image if there is one in the BLOB table.
PreviewData
PreviewField
PreviewPluginAttribute
Attribute used to mark a class as a Preview provider Plugin. Such classes need to implement the IPreviewpProviderPlugin interface. The priority of the standard providers is set at int.MaxValue/2 to provide room both above and below. The name has no impact on functionality, but should be hept unique and traceable (such as partnerName:pluginName or some such syntax). The provider can optionally register for one or more Preview hints it wishes to handle.
PreviewPluginBase
Base class for Preview provide plugins. This class contains some useful helper functions, and implements the Template Method pattern. Derived classes need to implement the InnerGetPreviewAsync(PreviewData, CancellationToken) method, and can use the TryGetIntHint(string, out int) and similar methods to obtain values from the Preview hint.
PreviewProvider
The one-stop shop for asynchronous Previews. This class takes a Preview hint and through the static GetPreview method converts it into a Preview. The underlying Preview providers are dynamically loaded plugins.
Due to the possibility of fairly expensive operations behind the Preview, this system SHOULD NOT be used to mass-produce Previews in some tight loop. Call the Preview provider only when you know that the user actually needs a Preview here and now.