The Events module allows users to easily create and manage events. The Events module provides the Events View and Events Scheduler public controls for displaying
events. This topic provides information of how to use the EventsManager class.
The Events module is based on Generic Content. Most methods used by EventsManager are actually methods of the ContentManager
The Content property of the EventsManager class is the instance of ContentManager instantiated with a proper provider for
Events. While all Generic Content based modules (such as Blogs, Events, News, and so on) are using the ContentManager class for most of their data-related work,
it is necessary that ContentManager is instantiated through the respective module's Content property, and not directly through ContentManager's
How to Start Using the EventsManager Class
You can create a new instance of the EventsManager class anywhere in your code in order to work with Events module data. If working in an
assembly, make sure you reference the Telerik.Events assembly before you use the EventsManager class.
In order to start using Events module API, create a new instance of the EventsManager class:
Create a new instance of EventsManager with specified provider name:
// creates new instance of EventsManager class with provider name as parameter,
// which means that EventsManager will use specified provider when working with data
eventsManager = new Telerik.Events.EventsManager("MyCustomProvider");
Working with Events
Since the Events module is based on the Generic Content module, a large number of methods used for manipulating Events are performed by
ContentManager (initialized with a proper Events provider). Every event is actually an object of IContent type. So, in order to allow access
to content manipulation methods , EventsManager exposes the public property Content of type ContentManager. This
allows developers to use common methods for retrieving, creating, updating and deleting content as well as comments, categories and tags.
In some scenarios events could be treated exclusively as content items (IContent objects). However, for other events the most important aspects are their start
and end dates. In such cases, the two EventsManager properties are the most suitable to use: EventStart and EventEnd. They are stored as
meta fields. The EventsModule class maintains a lookup table of Events where these are stored in the designated DateTime fields. This results in
much better performance when querying Events based on these properties.
Choosing between ContentManager Methods and EventsManager Methods
The Events module works with objects of type IEvent. However, since the Events module is based on Generic Content, an event can also be perceived as an
IContent object. When working with EventsManager methods, objects will be of type IEvent. On the other hand, if working with
ContentManager methods, objects will be of type IContent type.
Choosing a manager depends on the particular scenario. For retrieving events based on particular filter (just those where Contact name is John Smith, for
example), use the ContentManager class - it provides numerous methods for working with content. On the other hand, for retrieving all events that start this
month, use the EventsManager class - it provides more suitable methods.
The reason for using EventsManager-specific methods, and IEvent objects, is because objects of types ContentManager and IContent are not well suited for
manipulating date-specific content. Still, when content is more important than dates for an event, ContentManager and IContent types of objects provide solid support for
working with Events.
Here are a few examples:
• Retrieve events to be displayed in a grid, paging is turned on and particular filter is applied
Use : EventsManager.Content.GetContent(int from, int max, params IMetaSearchInfo filter)
• Retrieve events that start in February of this year
Use : EventsManager.GetEvents(DateTime from, DateTime to, string sortExpression)
• Get all comments for a particular IContent object
Use : EventsManager.Content.GetComments(Guid itemId) and pass it the value of IContent.ID property
• Get all comments for a particular IEvent object
Use : EventsManager.Content.GetComments(Guid itemId) and pass it the value of IEvent.ContentID property or
As the examples demonstrate, every IEvent object carries a reference to the IContent object describing that event. Apart
from that, an IEvent object also has properties such as Start and End -this allows much simpler work
when dates that signify when an event starts and ends are crucial for the given scenario.