I am getting the following error when I run a web page using RadScheduler Custom Provider:
Provider name cannot be null or empty.
I placed in the web config exactly what is supplied in the demo as well as examples posted on the site and I am still getting the above error.
Here is what is within my web.config:
This is the following code within my provider:
I really need help with this. A quick response to my issue would be greatly appreciated...
thanks in advance
Provider name cannot be null or empty.
I placed in the web config exactly what is supplied in the demo as well as examples posted on the site and I am still getting the above error.
Here is what is within my web.config:
<?
xml
version
=
"1.0"
?><
br
>
<
configuration
><
br
>
<
configSections
><
br
>
<
sectionGroup
name
=
"telerik.web.ui"
><
br
>
<
section
name
=
"radScheduler"
type
=
"Telerik.Web.UI.RadSchedulerConfigurationSection, Telerik.Web.UI, PublicKeyToken=121fae78165ba3d4"
allowDefinition
=
"MachineToApplication"
/><
br
>
</
sectionGroup
><
br
>
</
configSections
><
br
>
<
telerik.web.ui
><
br
>
<
radScheduler
defaultAppointmentProvider
=
"Integrated"
><
br
>
<
appointmentProviders
><
br
>
<
add
name
=
"ClassSchedSchedulerData"
type
=
"Scheduler3.RDSchedulerProvider"
persistChanges
=
"false"
/><
br
>
</
appointmentProviders
><
br
>
</
radScheduler
><
br
>
</
telerik.web.ui
><
br
>
<
appSettings
><
br
>
<
add
key
=
"Telerik.ScriptManager.TelerikCdn"
value
=
"Disabled"
/><
br
>
<
add
key
=
"Telerik.StyleSheetManager.TelerikCdn"
value
=
"Disabled"
/><
br
>
</
appSettings
><
br
>
<
system.web
><
br
>
<
compilation
debug
=
"true"
targetFramework
=
"4.0"
><
br
>
<
assemblies
><
br
>
<
add
assembly
=
"System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
/><
br
>
<
add
assembly
=
"System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
/><
br
>
<
add
assembly
=
"System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
/><
br
>
<
add
assembly
=
"System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
/><
br
>
<
add
assembly
=
"System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
/><
br
>
<
add
assembly
=
"System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
/><
br
>
<
add
assembly
=
"System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
/><
br
>
<
add
assembly
=
"System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
/><
br
>
<
add
assembly
=
"System.Speech, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
/><
br
>
</
assemblies
><
br
>
</
compilation
><
br
>
<
pages
><
br
>
<
controls
><
br
>
<
add
tagPrefix
=
"telerik"
namespace
=
"Telerik.Web.UI"
assembly
=
"Telerik.Web.UI"
/><
br
>
</
controls
><
br
>
</
pages
><
br
>
<
httpHandlers
><
br
>
<
add
path
=
"ChartImage.axd"
type
=
"Telerik.Web.UI.ChartHttpHandler"
verb
=
"*"
validate
=
"false"
/><
br
>
<
add
path
=
"Telerik.Web.UI.SpellCheckHandler.axd"
type
=
"Telerik.Web.UI.SpellCheckHandler"
verb
=
"*"
validate
=
"false"
/><
br
>
<
add
path
=
"Telerik.Web.UI.DialogHandler.aspx"
type
=
"Telerik.Web.UI.DialogHandler"
verb
=
"*"
validate
=
"false"
/><
br
>
<
add
path
=
"Telerik.RadUploadProgressHandler.ashx"
type
=
"Telerik.Web.UI.RadUploadProgressHandler"
verb
=
"*"
validate
=
"false"
/><
br
>
<
add
path
=
"Telerik.Web.UI.WebResource.axd"
type
=
"Telerik.Web.UI.WebResource"
verb
=
"*"
validate
=
"false"
/><
br
>
</
httpHandlers
><
br
>
<
httpModules
/><
br
>
</
system.web
><
br
>
<
system.webServer
><
br
>
<
validation
validateIntegratedModeConfiguration
=
"false"
/><
br
>
<
modules
runAllManagedModulesForAllRequests
=
"true"
/><
br
>
<
handlers
><
br
>
<
remove
name
=
"ChartImage_axd"
/><
br
>
<
add
name
=
"ChartImage_axd"
path
=
"ChartImage.axd"
type
=
"Telerik.Web.UI.ChartHttpHandler"
verb
=
"*"
preCondition
=
"integratedMode"
/><
br
>
<
remove
name
=
"Telerik_Web_UI_SpellCheckHandler_axd"
/><
br
>
<
add
name
=
"Telerik_Web_UI_SpellCheckHandler_axd"
path
=
"Telerik.Web.UI.SpellCheckHandler.axd"
type
=
"Telerik.Web.UI.SpellCheckHandler"
verb
=
"*"
preCondition
=
"integratedMode"
/><
br
>
<
remove
name
=
"Telerik_Web_UI_DialogHandler_aspx"
/><
br
>
<
add
name
=
"Telerik_Web_UI_DialogHandler_aspx"
path
=
"Telerik.Web.UI.DialogHandler.aspx"
type
=
"Telerik.Web.UI.DialogHandler"
verb
=
"*"
preCondition
=
"integratedMode"
/><
br
>
<
remove
name
=
"Telerik_RadUploadProgressHandler_ashx"
/><
br
>
<
add
name
=
"Telerik_RadUploadProgressHandler_ashx"
path
=
"Telerik.RadUploadProgressHandler.ashx"
type
=
"Telerik.Web.UI.RadUploadProgressHandler"
verb
=
"*"
preCondition
=
"integratedMode"
/><
br
>
<
remove
name
=
"Telerik_Web_UI_WebResource_axd"
/><
br
>
<
add
name
=
"Telerik_Web_UI_WebResource_axd"
path
=
"Telerik.Web.UI.WebResource.axd"
type
=
"Telerik.Web.UI.WebResource"
verb
=
"*"
preCondition
=
"integratedMode"
/><
br
>
</
handlers
><
br
>
</
system.webServer
><
br
>
</
configuration
><
br
>
This is the following code within my provider:
using System;<
br
>
using System.Collections.Generic;<
br
>
using System.Linq;<
br
>
using System.Web;<
br
>
using Telerik.Web.UI;<
br
>
using System.Data;<
br
>
using SchedEZ.DataAccess;<
br
>
using SchedEZ.Utilities;<
br
>
<
br
>
<
br
>
namespace Scheduler3<
br
>
{<
br
>
public class RDSchedulerProvider : SchedulerProviderBase <
br
>
{<
br
>
<
br
>
<
br
>
#region Declarations<
br
>
<
br
>
<
br
>
private IDictionary<
int
, Resource> _staff;<
br
>
private IDictionary<
int
, Resource> _students;<
br
>
private IDictionary<
int
, Resource> _equipments;<
br
>
private IDictionary<
int
, Resource> _buildingRooms;<
br
>
<
br
>
<
br
>
private Boolean _persistChanges = false;<
br
>
<
br
>
<
br
>
public enum eResourceType<
br
>
{<
br
>
BuildingRoom = 0,<
br
>
Staff = 1,<
br
>
Equipment = 2,<
br
>
Student = 3<
br
>
}<
br
>
<
br
>
<
br
>
#endregion<
br
>
<
br
>
<
br
>
#region Properties<
br
>
<
br
>
<
br
>
#endregion<
br
>
<
br
>
<
br
>
#region General Code<
br
>
<
br
>
<
br
>
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)<
br
>
{<
br
>
if (config == null)<
br
>
{<
br
>
throw new ArgumentNullException("config");<
br
>
}<
br
>
<
br
>
<
br
>
string persistChanges = config["persistChanges"];<
br
>
if (!string.IsNullOrEmpty(persistChanges))<
br
>
{<
br
>
if (!bool.TryParse(persistChanges, out _persistChanges))<
br
>
{<
br
>
throw new Exception("Invalid value for PersistChanges attribute. Use 'True' or 'False'.");<
br
>
}<
br
>
}<
br
>
else<
br
>
{<
br
>
_persistChanges = true;<
br
>
}<
br
>
<
br
>
<
br
>
}<
br
>
<
br
>
<
br
>
public override IDictionary<
ResourceType
, IEnumerable<Resource>> GetResources(ISchedulerInfo schedulerInfo)<
br
>
{<
br
>
Dictionary<
ResourceType
, IEnumerable<Resource>> resCollection = new Dictionary<
ResourceType
, IEnumerable<Resource>>();<
br
>
<
br
>
<
br
>
var myInfo = schedulerInfo as RDSchedulerInfo;<
br
>
int classSchedID = myInfo.ClassSchedID;<
br
>
<
br
>
<
br
>
// load the resources<
br
>
if (_staff == null)<
br
>
_staff = ResourceStaff.loadResources(classSchedID);<
br
>
<
br
>
<
br
>
if (_equipments == null)<
br
>
_equipments = ResourceEquipment.loadResources(classSchedID);<
br
>
<
br
>
<
br
>
if (_students == null)<
br
>
_students = ResourceStudent.loadResources(classSchedID);<
br
>
<
br
>
<
br
>
if (_buildingRooms == null)<
br
>
_buildingRooms = ResourceBuildingRoom.loadResources(classSchedID);<
br
>
<
br
>
<
br
>
<
br
>
<
br
>
resCollection.Add(new ResourceType(Enum.GetName(typeof(eResourceType), eResourceType.Staff), true), _staff.Values);<
br
>
resCollection.Add(new ResourceType(Enum.GetName(typeof(eResourceType), eResourceType.Student), true), _students.Values);<
br
>
resCollection.Add(new ResourceType(Enum.GetName(typeof(eResourceType), eResourceType.BuildingRoom), false), _buildingRooms.Values);<
br
>
resCollection.Add(new ResourceType(Enum.GetName(typeof(eResourceType), eResourceType.Equipment), true), _equipments.Values);<
br
>
<
br
>
<
br
>
return resCollection;<
br
>
}<
br
>
<
br
>
<
br
>
public override IEnumerable<
Appointment
> GetAppointments(ISchedulerInfo schedulerInfo)<
br
>
{<
br
>
var myInfo = schedulerInfo as RDSchedulerInfo;<
br
>
int classSchedID = myInfo.ClassSchedID;<
br
>
<
br
>
<
br
>
List<
Appointment
> appointments = new List<
Appointment
>();<
br
>
<
br
>
<
br
>
DataSet ds = ClassSchedWeekDayTime.getDataView_ByClassSchedID(classSchedID);<
br
>
<
br
>
<
br
>
if (!ds.IsEmpty())<
br
>
{<
br
>
foreach(DataRow dr in ds.Tables[0].Rows)<
br
>
{<
br
>
// create an appointment based on the data collected<
br
>
Appointment appt = ClassSchedule.addAppointment(dr);<
br
>
<
br
>
<
br
>
// load resources<
br
>
LoadResources(appt);<
br
>
<
br
>
<
br
>
// add to the appointments list<
br
>
appointments.Add(appt);<
br
>
}<
br
>
<
br
>
<
br
>
}<
br
>
<
br
>
<
br
>
return appointments;<
br
>
}<
br
>
<
br
>
<
br
>
<
br
>
<
br
>
private void LoadResources(Appointment apt)<
br
>
{<
br
>
// set the resource for each type<
br
>
<
br
>
<
br
>
//Student<
br
>
// students will be in every class schedule<
br
>
foreach (KeyValuePair<
int
, Resource> res in _students)<
br
>
apt.Resources.Add(res.Value);<
br
>
<
br
>
<
br
>
//Staff<
br
>
List<
Staff
> sf = ResourceStaff.FindByID(apt.ID.toInt());<
br
>
if (!sf.IsEmpty())<
br
>
{<
br
>
foreach (Staff itm in sf)<
br
>
apt.Resources.Add(_staff[itm.StaffId]);<
br
>
}<
br
>
<
br
>
<
br
>
//Equipment<
br
>
List<
Equipment
> eq = ResourceEquipment.FindByID(apt.ID.toInt());<
br
>
if (!eq.IsEmpty())<
br
>
{<
br
>
foreach (Equipment itm in eq)<
br
>
apt.Resources.Add(_equipments[itm.EquipmentId]);<
br
>
}<
br
>
<
br
>
<
br
>
//Equipment<
br
>
List<
BuildingRoom
> br = ResourceBuildingRoom.FindByID(apt.ID.toInt());<
br
>
if (!br.IsEmpty())<
br
>
{<
br
>
foreach (BuildingRoom itm in br)<
br
>
apt.Resources.Add(_buildingRooms[itm.BuildingRoomID]);<
br
>
}<
br
>
<
br
>
<
br
>
}<
br
>
<
br
>
<
br
>
public override void Insert(ISchedulerInfo schedulerInfo, Appointment appointmentToInsert)<
br
>
{<
br
>
base.Insert(schedulerInfo, appointmentToInsert);<
br
>
}<
br
>
<
br
>
<
br
>
public override void Update(ISchedulerInfo schedulerInfo, Appointment appointmentToUpdate)<
br
>
{<
br
>
base.Update(schedulerInfo, appointmentToUpdate);<
br
>
}<
br
>
<
br
>
<
br
>
public override void Delete(ISchedulerInfo schedulerInfo, Appointment appointmentToDelete)<
br
>
{<
br
>
base.Delete(schedulerInfo, appointmentToDelete);<
br
>
}<
br
>
<
br
>
<
br
>
#endregion<
br
>
}<
br
>
<
br
>
<
br
>
}<
br
>
I really need help with this. A quick response to my issue would be greatly appreciated...
thanks in advance