///////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// /// <summary>compares 2 source objects</summary> /// <param name="theOne">the One source</param> /// <param name="theOther">the Other source</param> /// <returns>true if identical </returns> ////////////////////////////////////////////////////////////////////// public static bool IsSourceIdentical(AtomSource theOne, AtomSource theOther) { Tracing.TraceInfo("Comparing source objects"); if (theOne == null && theOther == null) { return(true); } if (!ObjectModelHelper.IsBaseIdentical(theOne, theOther)) { return(false); } Tracing.TraceInfo("Source: comparing Authors collections"); if (!ObjectModelHelper.IsPersonCollectionIdentical(theOne.Authors, theOther.Authors)) { return(false); } Tracing.TraceInfo("Source: comparing Contributors collections"); if (!ObjectModelHelper.IsPersonCollectionIdentical(theOne.Contributors, theOther.Contributors)) { return(false); } Tracing.TraceInfo("Source: comparing categories collections"); if (!ObjectModelHelper.IsCategoryCollectionIdentical(theOne.Categories, theOther.Categories)) { return(false); } Tracing.TraceInfo("Source: comparing links collections"); if (!ObjectModelHelper.IsLinkCollectionIdentical(theOne.Links, theOther.Links)) { return(false); } if (!ObjectModelHelper.IsTextConstructIdentical(theOne.Title, theOther.Title)) { return(false); } if (!ObjectModelHelper.IsTextConstructIdentical(theOne.Rights, theOther.Rights)) { return(false); } if (!ObjectModelHelper.IsTextConstructIdentical(theOne.Subtitle, theOther.Subtitle)) { return(false); } if (!ObjectModelHelper.IsBaseLinkIdentical(theOne.Id, theOther.Id)) { return(false); } if (!ObjectModelHelper.IsGeneratorIdentical(theOne.Generator, theOther.Generator)) { return(false); } if (!ObjectModelHelper.IsBaseLinkIdentical(theOne.Icon, theOther.Icon)) { return(false); } if (!ObjectModelHelper.IsBaseLinkIdentical(theOne.Logo, theOther.Logo)) { return(false); } return(true); }