Extend Sitefinity CMS data model: Register the provider
After you create the provider class, you need to register the provider in Sitefinity's CMS backend. Once you do this, you are able to use your custom provider in your project and persist the mapped custom type to the database.
Before you register the provider, make sure that your SitefinityWebApp references the CustomTypes class library and build the solution.
To register the provider:
-
Navigate to Administration » Settings » Advanced » Pages » Providers.
-
Click Create new and in *ProviderType,*enter:
CustomTypes.CustomPageProvider, CustomTypes -
Enter a valid name and title of the provider.
IMPORTANT: Special characters are allowed in the title of the provider but are not allowed in its name.
-
Save your changes.
You can now use the custom provider by adding the following code:
using System;
using System.Linq;
using Telerik.Sitefinity.Modules.Pages;
namespace SitefinityWebApp
{
public partial class MyUserWidgetDataModel : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
var manager = PageManager.GetManager("CustomProvider");
// Get the provider
var provider = manager.Provider as CustomPageProvider;
// Persists the custom type to the database
var customType = provider.CreateCustomType();
customType.Title = "My custom type";
manager.SaveChanges();
// Gets a custom type item by Id
var item = provider.GetCustomType(customType.Id);
// Gets a collection of custom type items
var items = provider.GetCustomTypes().Where(x => x.Title == "My custom type");
// Removes a custom type item from the database
provider.Delete(customType);
}
}
}