I may be wrong but i feel that the Original Event schema has some problems. I think that this is the only class which had been derived from SimpleContainer.cs
I think all the XML elements in the Google event has type <gd:extensionElement> and this (Original Event) one has <http://schemas.google.com/g/2005#:originalEvent>. I think it should have been <gd:originalEvent> Is this fine ? Thanks Kulvinder Singh ----- Original Message ---- From: Kulvinder Singh <[EMAIL PROTECTED]> To: [email protected] Sent: Tuesday, October 9, 2007 2:53:13 PM Subject: Re: 3rd Major bug in new Google API 1.1.0.0 Frank, To help myself out, i went through filter to look at what was actually sent to Google : <?xml version="1.0" encoding="utf-8"?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005"> <gd:eventStatus value="http://schemas.google.com/g/2005#event.canceled" /> <http://schemas.google.com/g/2005#:originalEvent href="http://www.google.com/calendar/feeds/[EMAIL PROTECTED]/private/full/b1baihhgq1maamg5lt4shiejck" id="b1baihhgq1maamg5lt4shiejck" xmlns:http://schemas.google.com/g/2005#="http://schemas.google.com/g/2005"> <gd:when startTime="2007-10-08T08:00:00+05:30" endTime="2007-10-08T10:30:00+05:30" /> </http://schemas.google.com/g/2005#:originalEvent> <category term="http://schemas.google.com/g/2005#event" scheme="http://schemas.google.com/g/2005#kind" /> </entry> Now, you can see on your own what i have written above BOLD. there is a "/" infront of http. Kindly correct the code. ----- Original Message ---- From: Kulvinder Singh <[EMAIL PROTECTED]> To: [email protected] Sent: Tuesday, October 9, 2007 2:29:24 PM Subject: Re: 3rd Major bug in new Google API 1.1.0.0 Frank, I reply appreciate the kind of efforts you are putting in over all this. Your response is really very timely and excellent. Here is the code which creates an recurrence Exception to a already created Recurring event in Google, using .NET 1.1.0.0 library : // fetch the recurring event (from google server) to which the exceptions have to be added parentEvent = (EventEntry)GetRecurringEvent(eventId); // Add a deleted exception CalendarService calendarService = new CalendarService("TestApp"); calendarService.Credentials = new GDataCredentials(userName, password); Uri postUri = new Uri("Calendar URL here"); EventEntry exceptionEntry = new EventEntry(); exceptionEntry.Status = EventEntry.EventStatus.CANCELED; OriginalEvent originalEvent = new OriginalEvent(); originalEvent.OriginalStartTime = originalWhen; originalEvent.Href = "parentEvent-Href here"; originalEvent.IdOriginal = "parentEvent-id here"; exceptionEntry.OriginalEvent = originalEvent; calendarService.Insert(postUri, exceptionEntry); Note that the same code was working fine when i was using .NET 1.0.9.9 API version. Seems that there is something wrongly coded XML which the server is not accepting. Keep up your kind efforts. Thanks Kulvinder Singh ----- Original Message ---- From: Frank Mantek <[EMAIL PROTECTED]> To: [email protected] Sent: Tuesday, October 9, 2007 2:05:21 PM Subject: Re: 3rd Major bug in new Google API 1.1.0.0 Understand that we are trying our best to release the code as bug free as possible, but even we have limited resources. The whole extension system was rewritten, which is a major chunk of new code. This was the primary reason why i asked people to grab the code from subversion to give it a test spin, so that bugs could be reported. I have not seen bugs reported for 10 days... during that time i added more properties (picasa etc) and did run the limited tests i have available. They obviously do not match the complexity of your application, the tests are not even close to that. I am trying to fix those issues as fast as you report them. What you are finding are lacks in the functional tests for the .NET library. So if you are willing, please give me a code snippet that does the thing that produced the bug, and i add it to the unittests so that it does not happen again. And i have no idea what the cryptic error means. So i need that code snippet anyway to figure out what is going on there. Frank Mantek Google On Oct 9, 2007, at 9:16 AM, Kulvinder Singh wrote: Afetr i corrected the problem, i tried to cretae a deleted recurrence exception and got the following error : org.xml.sax.SAXParseException: Element type "http:" must be followed by either attribute specifications, ">" or "/>". Now what does that mean ? I am using Google API 1.1.0.0 with no other modifications. Where is the problem now ? Seems like that the new API release changes have not been tested properly. I seem to be harsh but it seems to have shaken my trust on the credibility of the releases Thanks Kulvinder Singh ----- Original Message ---- From: Kulvinder Singh <[EMAIL PROTECTED]> To: Google API <[email protected]> Sent: Tuesday, October 9, 2007 12:36:35 PM Subject: 3rd Major bug in new Google API 1.1.0.0 Hi, In the series of bugs in new calendar .NET API 1.1.0.0, there is another bug and i found it through the following : I am trying to add an exception in a Google Event as follows : OriginalEvent originalEvent = new OriginalEvent(); originalEvent.OriginalStartTime = originalWhen; originalEvent.Href = selfURIContent; originalEvent.IdOriginal = Common.GetGcalEventSubID(selfURIContent); gCalExceptionEvent.OriginalEvent = originalEvent; As soon as i executed my code, it threw an exception at : originalEvent.OriginalStartTime which is ////////////////////////////////////////////////////////////////////// /// <summary>accessor method public original Start Time</summary> /// <returns> </returns> ////////////////////////////////////////////////////////////////////// public When OriginalStartTime { get { return FindExtension(GDataParserNameTable.XmlWhenElement, BaseNameTable.gNamespace) as When; } set { ReplaceExtension(GDataParserNameTable.XmlWhenElement, BaseNameTable.gNamespace, value); } } and public void ReplaceExtension(string localName, string ns, Object obj) { DeleteExtensions(localName, ns); this.ExtensionElements.Add(obj); } /// <summary> /// Delete's all Extensions from the Extension list that match /// a localName and a Namespace. /// </summary> /// <param name="localName">the local name to find</param> /// <param name="ns">the namespace to match, if null, ns is ignored</param> /// <returns>int - the number of deleted extensions</returns> public int DeleteExtensions(string localName, string ns) { // Find them first ArrayList arr = FindExtensions(localName, ns); foreach (object ob in arr) { this.extensions.Remove(ob); } return arr.Count; } basically, the erros is being thrown by FindExtensiosn method since it uses this.extensions which is null /// <summary> /// Finds all ExtensionElement based on it's local name /// and it's namespace. If namespace is NULL, allwhere /// the localname matches is found. If there are extensionelements that do /// not implment ExtensionElementFactory, they will not be taken into account /// Primary use of this is to find XML nodes /// </summary> /// <param name="localName">the xml local name of the element to find</param> /// <param name="ns">the namespace of the elementToPersist</param> /// <returns>none</returns> public ArrayList FindExtensions(string localName, string ns) { return Utilities.FindExtensions(this.extensions, localName, ns, new ArrayList()); } I think that instead of using this.extensions directly, it should have been : ////////////////////////////////////////////////////////////////////// /// <summary>the list of extensions for this container /// the elements in that list MUST implement IExtensionElementFactory /// and IExtensionElement</summary> /// <returns> </returns> ////////////////////////////////////////////////////////////////////// public ArrayList ExtensionElements { get { if (this.extensions == null) { this.extensions = new ArrayList(); } return this.extensions; } set { this.extensions = value; } } so that the function FindExtensions look like : /// <summary> /// Finds all ExtensionElement based on it's local name /// and it's namespace. If namespace is NULL, allwhere /// the localname matches is found. If there are extensionelements that do /// not implment ExtensionElementFactory, they will not be taken into account /// Primary use of this is to find XML nodes /// </summary> /// <param name="localName">the xml local name of the element to find</param> /// <param name="ns">the namespace of the elementToPersist</param> /// <returns>none</returns> public ArrayList FindExtensions(string localName, string ns) { return Utilities.FindExtensions(ExtensionElements, localName, ns, new ArrayList()); } Please correct me if i am wrong somewhere. Thanks Kulvinder Singh Don't let your dream ride pass you by. Make it a reality with Yahoo! Autos. Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out. Be a better Globetrotter. Get better travel answers from someone who knows. Yahoo! Answers - Check it out. Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, photos & more. ____________________________________________________________________________________ Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games. http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Calendar Data API" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-calendar-help-dataapi?hl=en -~----------~----~----~----~------~----~------~--~---
