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