MindFusion.Scheduling for ASP.NET lets you associate resources with scheduled events via the Resources, Contacts, Location and Task properties of Item objects. These properties contain objects from the Resource, Contact, Location and Task classes respectively. If you need to assign a resource to schedule items, you must also add the resource to the appropriate collection in the Schedule class, namely Resources, Contacts, Locations or Tasks.
Timetable, List and Resource views let you display distinct rows or columns for selected resources and to group items by their associated resources. To enable that, add the resources of interest to the appropriate resource collection of the Calendar object (that is, Resources, Contacts, Locations and Tasks respectively) and set the Calendar.GroupType property to the appropriate value.
The class Resource is the base class of Contact, Location and Task. It defines an Id property, which must be unique among all resources in the schedule, and a pair of SaveTo and LoadFrom methods, which implement serialization.
You can define custom resources by deriving from Resource or from any of the Resource-derived classes. Custom resources are added to the schedule by adding them to the Calendar.Schedule.Resources collection. In order to enable serialization of custom resources, you have to provide a parameterless constructor and override the SaveTo / LoadFrom methods in the custom resource class. In addition you must register that class by calling Schedule.RegisterResourceClass before any deserialization code takes place.
Resources are also available on the client side, implemented as JavaScript objects. All resources defined for the Calendar can be obtained by calling the getResourceCollections or each separate collection of Resources, Contacts, Locations and Tasks is available through getResources, getContacts, getLocations and getTasks methods respectively.
All calendar views provide means to filter out items, based on resources they contain. Timetable, List and Resource views can group items in separate columns / rows. To see if there is any filtering or grouping enabled on the client, check the value of the getGroupType method and to obtain a collection of the currently filtered / grouped resources, call getFilteredResources or getGroupedResources. Different resources, set up for filter or grouping are available also by type through getCalendarResources, getCalendarContacts, getCalendarLocations and getCalendarTasks.