///////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// /// <summary>Event chaining. We catch this by the baseFeedParsers, which /// would not do anything with the gathered data. We pass the event up /// to the user; if the user doesn't discard it, we add the entry to our /// collection</summary> /// <param name="sender"> the object which send the event</param> /// <param name="e">FeedParserEventArguments, holds the feed entry</param> /// <returns> </returns> ////////////////////////////////////////////////////////////////////// protected void OnParsedNewEntry(object sender, FeedParserEventArgs e) { // by default, if our event chain is not hooked, add it to the collection //Tracing.TraceCall("received new item notification"); //Tracing.Assert(e != null, "e should not be null"); if (e == null) { throw new ArgumentNullException("e"); } if (this.NewAtomEntry != null) { //Tracing.TraceMsg("\t calling event dispatcher"); this.NewAtomEntry(this, e); } // now check the return if (e.DiscardEntry != true) { if (e.CreatingEntry == false) { if (e.Entry != null) { // add it to the collection //Tracing.TraceMsg("\t new AtomEntry found, adding to collection"); e.Entry.Service = this.Service; this.Entries.Add(e.Entry); } else if (e.Feed != null) { // parsed a feed, set ourselves to it... //Tracing.TraceMsg("\t Feed parsed found, parsing is done..."); } } else { IVersionAware v = e.Entry as IVersionAware; if (v != null) { v.ProtocolMajor = this.ProtocolMajor; v.ProtocolMinor = this.ProtocolMinor; } } } if (e.DoneParsing == true) { this.BaseUriChanged(this.ImpliedBase); } }