Daniel Mettler
Top achievements
Rank 2
Iron
Daniel Mettler
asked on 29 Apr 2009, 10:54 AM
Hi
Im trying to update my scheduler with a webservice an get the data from a sql database. I changed the GetAppointments Method in the Webservice:
Something like this:
In the database, there is a string field which contains the recurrence string, how can i handle this. The recurring appointments are not visible in the scheduler.
Do you have a code example or something?
Thx for help
Im trying to update my scheduler with a webservice an get the data from a sql database. I changed the GetAppointments Method in the Webservice:
Something like this:
[WebMethod] |
public IEnumerable<AppointmentData> GetAppointments(chedulerInfo schedulerInfo) |
{ |
List<AppointmentData> lstAppointments = new List<AppointmentData>(); |
foreach (object AppointmentInformations in ObjectCollection) |
{ |
Appointment NewAppointment = new Appointment(); |
Appointment.Recurrence = ".........."; Appointment.... |
// Fill the NewAppointment with stuff from database |
AppointmentData AppData = new AppointmentData(); |
AppData.CopyFrom(NewAppointment); |
lstAppointments.Add(AppData); |
} |
return lstAppointments; |
} |
In the database, there is a string field which contains the recurrence string, how can i handle this. The recurring appointments are not visible in the scheduler.
Do you have a code example or something?
Thx for help
12 Answers, 1 is accepted
0
Accepted
Hi Daniel,
You should not modify the GetAppointments method in the web service class. Instead, you should use a provider and set the WebServiceAppointmentController to use this provider.
I have prepared a demo project which uses Web Services with MyDbSchedulerProvider.cs. MyDbSchedulerProvider on its part uses Telerik.mdf -> [DbProvider_Classes] data table. The provider is configured in the web.config and the controller's constructor uses the provider name string:
The web.config settings related to the provider are as follows:
Let me know if you have further questions.
Best wishes,
Peter
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
You should not modify the GetAppointments method in the web service class. Instead, you should use a provider and set the WebServiceAppointmentController to use this provider.
I have prepared a demo project which uses Web Services with MyDbSchedulerProvider.cs. MyDbSchedulerProvider on its part uses Telerik.mdf -> [DbProvider_Classes] data table. The provider is configured in the web.config and the controller's constructor uses the provider name string:
* * * |
_controller = new WebServiceAppointmentController("MyDBSchedulerProvider"); |
* * * |
The web.config settings related to the provider are as follows:
<sectionGroup name="telerik.web.ui"> |
<section name="radScheduler" type="Telerik.Web.UI.RadSchedulerConfigurationSection, Telerik.Web.UI" allowDefinition="MachineToApplication" requirePermission="false"/> |
</sectionGroup> |
* * * |
<connectionStrings> |
<add name="TelerikConnectionString1" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Telerik.mdf;Integrated Security=True;User Instance=True" |
providerName="System.Data.SqlClient" /> |
</connectionStrings> |
* * * |
<telerik.web.ui> |
<radScheduler defaultAppointmentProvider="Integrated"> |
<appointmentProviders> |
<add name="MyDBSchedulerProvider" type="MyDbSchedulerProvider" connectionStringName="TelerikConnectionString1" persistChanges="true"/> |
</appointmentProviders> |
</radScheduler> |
</telerik.web.ui> |
Let me know if you have further questions.
Best wishes,
Peter
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Michael
Top achievements
Rank 1
answered on 07 May 2009, 01:30 AM
Peter,
When I attempt to run the same application attached, I get the following error when accessing the web service.
Cannot serialize interface System.Collections.Generic.IEnumerable`1[[Telerik.Web.UI.AppointmentData, Telerik.Web.UI, Version=2009.1.402.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4]].
I copied all of the files to a new virtual directory and attempted to call both default.aspx and schedulerwebservice.asmx. Both return the same error. Any ideas what I am missing? Thank you.
Michael
When I attempt to run the same application attached, I get the following error when accessing the web service.
Cannot serialize interface System.Collections.Generic.IEnumerable`1[[Telerik.Web.UI.AppointmentData, Telerik.Web.UI, Version=2009.1.402.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4]].
I copied all of the files to a new virtual directory and attempted to call both default.aspx and schedulerwebservice.asmx. Both return the same error. Any ideas what I am missing? Thank you.
Michael
0
Jan
Top achievements
Rank 1
answered on 23 Jul 2009, 04:21 PM
Hello,
I have the same issue - Cannot serialize interface System.Collections.Generic.IEnumerable`1[[Telerik.Web.UI.AppointmentData, Telerik.Web.UI, Version=2009.2.701.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4]].
Do You any idea how to solve it?
Thank You Jan
I have the same issue - Cannot serialize interface System.Collections.Generic.IEnumerable`1[[Telerik.Web.UI.AppointmentData, Telerik.Web.UI, Version=2009.2.701.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4]].
Do You any idea how to solve it?
Thank You Jan
0
Sergio
Top achievements
Rank 1
answered on 28 Jul 2009, 03:25 AM
Same here.
Thanks
0
Hi,
I guess that you're getting this error when you're trying to open the web service handler directly in the browser?
The automatically generated test page doesn't support script services and it tries to access the service using SOAP. Which in turn doesn't support IEnumerable and generates the error in question.
The service will work fine when invoked by RadScheduler with the correct transport type (JSON).
Kind regards,
Tsvetomir Tsonev
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
I guess that you're getting this error when you're trying to open the web service handler directly in the browser?
The automatically generated test page doesn't support script services and it tries to access the service using SOAP. Which in turn doesn't support IEnumerable and generates the error in question.
The service will work fine when invoked by RadScheduler with the correct transport type (JSON).
Kind regards,
Tsvetomir Tsonev
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Yeroon
Top achievements
Rank 2
answered on 20 Aug 2009, 08:44 AM
Hi,
I got the sample to work. Now I was wondering if I can work with filtered datasets in the webmethods. I don't want to retrieve all appointments, but just limited sets. E.g. fltered by employee and date.
How can I achieve this?
I would like to be able to call something like this:
Which would then be used in the underlying query in the provider:
Any way of achieving this? I will be getting thousands of entries in the appointments table and can't afford to retrieve them all everytime.
Thx for any help
Yeroon
I got the sample to work. Now I was wondering if I can work with filtered datasets in the webmethods. I don't want to retrieve all appointments, but just limited sets. E.g. fltered by employee and date.
How can I achieve this?
I would like to be able to call something like this:
[WebMethod] |
public IEnumerable<AppointmentData> GetAppointments(SchedulerInfo schedulerInfo, DateTime day, long EmployeeID) |
{ |
return Controller.GetAppointments(schedulerInfo, day, EmployeeID); |
} |
Which would then be used in the underlying query in the provider:
cmd.CommandText = "SELECT [ClassID], [Subject], [Start], [End], [RecurrenceRule], [RecurrenceParentId] FROM [DbProvider_Classes] WHERE Start=" + day + " AND TeachID =" + EmployeeID ; |
Any way of achieving this? I will be getting thousands of entries in the appointments table and can't afford to retrieve them all everytime.
Thx for any help
Yeroon
0
Yeroon
Top achievements
Rank 2
answered on 20 Aug 2009, 09:03 AM
I think I found my answer:
http://www.telerik.com/community/forums/aspnet-ajax/scheduler/sending-extra-info-to-the-web-service.aspx
http://www.telerik.com/community/forums/aspnet-ajax/scheduler/sending-extra-info-to-the-web-service.aspx
0
peter brandt
Top achievements
Rank 1
answered on 07 Oct 2009, 11:30 AM
Hi
If i want to set a Webreference to the Webservice with the SchedulerWebservice Webmethods it always says:
"Cannot serialize interface System.Collections.Generic.IEnumerable`1[[Telerik.Web.UI.AppointmentData, Telerik.Web.UI, Version=2009.1.402.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4]]."
like by the other people here.
Now i dont know what to do with your "correct transport type (JSON)"...
I have all my Webservices already done, but only the RadScheduler Webservice doesnt work...
What can i do now?
How to transfer by JSON?
Peter
If i want to set a Webreference to the Webservice with the SchedulerWebservice Webmethods it always says:
"Cannot serialize interface System.Collections.Generic.IEnumerable`1[[Telerik.Web.UI.AppointmentData, Telerik.Web.UI, Version=2009.1.402.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4]]."
like by the other people here.
Now i dont know what to do with your "correct transport type (JSON)"...
I have all my Webservices already done, but only the RadScheduler Webservice doesnt work...
What can i do now?
How to transfer by JSON?
Peter
0
Hi,
Do you get this error when you try to access the Web Service handler in your browser? This is normal, as ASP.NET tries to generate an user-friendly test page, but fails as it can only do so for a SOAP-based services and not for JSON ones.
You can proceed and add the reference to RadScheduler and it'll work.
Best wishes,
Tsvetomir Tsonev
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Do you get this error when you try to access the Web Service handler in your browser? This is normal, as ASP.NET tries to generate an user-friendly test page, but fails as it can only do so for a SOAP-based services and not for JSON ones.
You can proceed and add the reference to RadScheduler and it'll work.
Best wishes,
Tsvetomir Tsonev
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
0
PAUL HAY
Top achievements
Rank 1
answered on 17 Oct 2013, 08:25 AM
How do you add the reference when visual studio reports the Cannot serialize interface System.Collections.Generic.IEnumerable error in the add web reference dialogue and won't let you continue.
0
Piyushkumar
Top achievements
Rank 1
answered on 28 Jan 2014, 05:20 AM
Hi Admin (T. Tsonev),
With regard to your following comment: ===>
"The automatically generated test page doesn't support script services and it tries to access the service using SOAP.
Which in turn doesn't support IEnumerable and generates the error in question.
The service will work fine when invoked by RadScheduler with the correct transport type (JSON)." <===
It should have been mentioned in the help document under "Implementing Provider".
It took me 3-4 days to figure out the issue and still struggling with it.
Frustrating.
With regard to your following comment: ===>
"The automatically generated test page doesn't support script services and it tries to access the service using SOAP.
Which in turn doesn't support IEnumerable and generates the error in question.
The service will work fine when invoked by RadScheduler with the correct transport type (JSON)." <===
It should have been mentioned in the help document under "Implementing Provider".
It took me 3-4 days to figure out the issue and still struggling with it.
Frustrating.
0
Hello,
Thank you for the provided information.
I would like to assure you that we will investigate this question thoroughly and update the documentation if need.
Thank you for your cooperation.
Regards,
Boyan Dimitrov
Telerik
Thank you for the provided information.
I would like to assure you that we will investigate this question thoroughly and update the documentation if need.
Thank you for your cooperation.
Regards,
Boyan Dimitrov
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the UI for ASP.NET AJAX, subscribe to the blog feed now.