Providers
Where notifications are used to hook into the flow of DynamicWeb, providers are used when you want to implement your completely own functionality for a specific use-case e.g. a PriceProvider or a DataIntegrationProvider. DynamicWeb will then be able to discover the custom providers, so they can be selected in the administration of DynamicWeb.
DynamicWeb exposes a number of base-class, which can be used to implement the providers, and it's important that your custom provider implements the correct base-class otherwise it will not appear.
Platform
- Scheduled
Task Add In - Update
Provider - ILogger
Provider - Index
Provider Base - Task
Provider Base - Index
Repository Provider - Pdf
Renderer Provider - Pdf
Image Converter Provider - Image
Size Provider - Image
Metadata Provider - Image
Editor Provider - Image
Converter Provider - Image
Attributes Provider - Type
Alias Provider - Field
Type Provider - Code
Provider Base - Health
Provider Base - Deployment
Provider - Data
Item Provider - Data
Provider - Database
Connection Provider - Sql
Data Provider Base - IConfiguration
Provider - Addin
Provider
Email Marketing
- Recipient
Content Provider - Message
Delivery Provider - Email
Tracking Provider - Email
Resend Provider - Email
Recipient Provider
Commerce
- Report
Provider - Stock
Location Provider - Stock
Level Provider - StatisticsProvider
- ProductFieldTypeProvider
- Tax
Provider - Price
Provider - Configurable
Vat Provider - Fee
Provider - Return
Merchandise Authorization Replacement Order Provider - Address
Validator Provider - IPoint
Provider - IStateless
Point Provider - ICondition
Point Provider - UrlProvider
- Url
Data Provider - Navigation
Provider - Feed
Provider - Shipping
Provider - Cart
Calculation Provider
Forms
DataIntegration
Users
Configurable Add-ins
By default, providers will only contain functionality and you have no way of configuring it from the administration, but if you create your provider as a Configurable Add-in you can add UI elements to the provider. A provider will function as a Configurable Add-in by inheriting from the ConfigurableAddIn
class:
using Dynamicweb.Extensibility.AddIns;
namespace Examples
{
[AddInName("MyProvider"), AddInDescription("Custom provider description")]
public class MyProvider : ConfigurableAddIn
{
}
}
Attribute | Description |
---|---|
Add |
Defines if the add-in is active |
Add |
Defines the the author of an add-in. |
Add |
Indicates if an add-in is deprecated, meaning that it can still be used, but it will no longer be selectable from the administration |
Add |
Provides a description of the add-in |
Add |
Used to provide an icon to an add-in |
Add |
Does the same as AddInDeprecated |
Add |
Used to provide a name of the add-in |
Add |
Used to provide a name of the add-in |
Add |
Provides a sorting of the individual add-ins |
Add |
Defines the the place where an add-in should be displayed. |
If you then need to add some configurable to your provider, you do it by adding attributes to your properties, which gives information about how it should look in the UI.
using Dynamicweb.Extensibility.AddIns;
using Dynamicweb.Extensibility.Editors;
namespace Examples
{
[AddInName("MyProviderWithParameters"), AddInDescription("Custom provider description with parameters")]
public class MyProviderWithParameters : ConfigurableAddIn
{
[AddInParameter("My Property")]
[AddInParameterEditor(typeof(TextParameterEditor), "")]
public string MyProperty { get; set; }
}
}
DynamicWeb will then make sure to save the configuration, and fill out the correct value next time the provider is loaded.
We have a bunch of different attributes that you can use to decorate your properties:
Attribute | Description |
---|---|
Add |
Used to provide a name of your configuration parameter, which will be shown in the UI |
Add |
Used to define which editor should be used for this parameter. A list of available editor types can be found here |
Add |
Used to group parameters together in a named Group. All properties with the same name in this attribute will be listed together |
Add |
Defines if the AddInParameterGroup is active or not |
Add |
Used to define the order of the parameters using a number value. |
Add |
Defines if the custom parameter ordering from the AddInParameterOrder attribute is used |