//============================================================ // ICOMPARABLE IMPLEMENTATION //============================================================ #region CompareTo(object obj) /// <summary> /// Compares the current instance with another object of the same type. /// </summary> /// <param name="obj">An object to compare with this instance.</param> /// <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns> /// <exception cref="ArgumentException">The <paramref name="obj"/> is not the expected <see cref="Type"/>.</exception> public int CompareTo(object obj) { //------------------------------------------------------------ // If target is a null reference, instance is greater //------------------------------------------------------------ if (obj == null) { return(1); } //------------------------------------------------------------ // Determine comparison result using property state of objects //------------------------------------------------------------ LiveJournalMood value = obj as LiveJournalMood; if (value != null) { int result = this.Id.CompareTo(value.Id); result = result | String.Compare(this.Content, value.Content, StringComparison.OrdinalIgnoreCase); return(result); } else { throw new ArgumentException(String.Format(null, "obj is not of type {0}, type was found to be '{1}'.", this.GetType().FullName, obj.GetType().FullName), "obj"); } }
/// <summary> /// Initializes the syndication extension context using the supplied <see cref="XPathNavigator"/>. /// </summary> /// <param name="source">The <b>XPathNavigator</b> used to load this <see cref="LiveJournalSyndicationExtensionContext"/>.</param> /// <param name="manager">The <see cref="XmlNamespaceManager"/> object used to resolve prefixed syndication extension elements and attributes.</param> /// <returns><b>true</b> if the <see cref="LiveJournalSyndicationExtensionContext"/> was able to be initialized using the supplied <paramref name="source"/>; otherwise <b>false</b>.</returns> /// <exception cref="ArgumentNullException">The <paramref name="source"/> is a null reference (Nothing in Visual Basic).</exception> /// <exception cref="ArgumentNullException">The <paramref name="manager"/> is a null reference (Nothing in Visual Basic).</exception> public bool Load(XPathNavigator source, XmlNamespaceManager manager) { bool wasLoaded = false; Guard.ArgumentNotNull(source, "source"); Guard.ArgumentNotNull(manager, "manager"); if (source.HasChildren) { XPathNavigator musicNavigator = source.SelectSingleNode("lj:music", manager); XPathNavigator moodNavigator = source.SelectSingleNode("lj:mood", manager); XPathNavigator securityNavigator = source.SelectSingleNode("lj:security", manager); XPathNavigator userPictureNavigator = source.SelectSingleNode("lj:userpic", manager); XPathNavigator preformattedNavigator = source.SelectSingleNode("lj:preformatted", manager); if (musicNavigator != null && !String.IsNullOrEmpty(musicNavigator.Value)) { this.Music = musicNavigator.Value; wasLoaded = true; } if (moodNavigator != null) { LiveJournalMood mood = new LiveJournalMood(); if (mood.Load(moodNavigator)) { this.Mood = mood; wasLoaded = true; } } if (securityNavigator != null) { LiveJournalSecurity security = new LiveJournalSecurity(); if (security.Load(securityNavigator)) { this.Security = security; wasLoaded = true; } } if (userPictureNavigator != null) { LiveJournalUserPicture userPicture = new LiveJournalUserPicture(); if (userPicture.Load(userPictureNavigator)) { this.UserPicture = userPicture; wasLoaded = true; } } if (preformattedNavigator != null) { this.IsPreformatted = true; wasLoaded = true; } } return(wasLoaded); }
/// <summary> /// Compares the current instance with another object of the same type. /// </summary> /// <param name="obj">An object to compare with this instance.</param> /// <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns> /// <exception cref="ArgumentException">The <paramref name="obj"/> is not the expected <see cref="Type"/>.</exception> public int CompareTo(object obj) { if (obj == null) { return(1); } LiveJournalMood value = obj as LiveJournalMood; if (value != null) { int result = this.Id.CompareTo(value.Id); result = result | String.Compare(this.Content, value.Content, StringComparison.OrdinalIgnoreCase); return(result); } else { throw new ArgumentException(String.Format(null, "obj is not of type {0}, type was found to be '{1}'.", this.GetType().FullName, obj.GetType().FullName), "obj"); } }