public bool Compare() { bool result = true; if (this.m_Value != null && this.m_Clone != null) { Type type = this.m_Value.GetType(); PropertyInfo[] properties = type.GetProperties(); foreach (PropertyInfo property in properties) { if (property.Name == "Item" || property.Name == "PublishedDocument") { continue; } if (property.PropertyType.FullName.Contains("System") == false || property.PropertyType.FullName.Contains("Collection") == true || property.PropertyType.FullName.Contains("List") == true) { if (property.PropertyType.FullName.Contains("Collection") == false && property.PropertyType.FullName.Contains("List") == false) { object object1 = property.GetValue(this.m_Value, null); object object2 = property.GetValue(this.m_Clone, null); DocumentTestBuilders dtb = new DocumentTestBuilders(object1, object2); result = dtb.Compare(); if (result == false) { break; } } else { result = this.HandleCollection(property, this.m_Value, this.m_Clone); if (result == false) { break; } } } else { PersistenceHelper persistenceHelper = new PersistenceHelper(); result = PersistenceHelper.ArePropertiesEqual(property, this.m_Value, this.m_Clone); if (result == false) { break; } } } } else { result = this.CheckNulls(this.m_Value, this.m_Clone); if (result == false) { string s = "nope"; } } return(result); }
public bool Compare() { bool result = true; if(this.m_Value != null && this.m_Clone != null) { Type type = this.m_Value.GetType(); PropertyInfo[] properties = type.GetProperties(); foreach (PropertyInfo property in properties) { if(property.Name == "Item" || property.Name == "PublishedDocument") { continue; } if (property.PropertyType.FullName.Contains("System") == false || property.PropertyType.FullName.Contains("Collection") == true || property.PropertyType.FullName.Contains("List") == true) { if (property.PropertyType.FullName.Contains("Collection") == false && property.PropertyType.FullName.Contains("List") == false) { object object1 = property.GetValue(this.m_Value, null); object object2 = property.GetValue(this.m_Clone, null); DocumentTestBuilders dtb = new DocumentTestBuilders(object1, object2); result = dtb.Compare(); if (result == false) break; } else { result = this.HandleCollection(property, this.m_Value, this.m_Clone); if (result == false) break; } } else { PersistenceHelper persistenceHelper = new PersistenceHelper(); result = PersistenceHelper.ArePropertiesEqual(property, this.m_Value, this.m_Clone); if (result == false) break; } } } else { result = this.CheckNulls(this.m_Value, this.m_Clone); if (result == false) { string s = "nope"; } } return result; }
private bool HandleCollection(PropertyInfo property, object object1, object object2) { bool result = true; if (property.Name == "ValidationErrors") { return(result); } IList collectionObjects1 = (IList)property.GetValue(object1, null); IList collectionObjects2 = (IList)property.GetValue(object2, null); if (collectionObjects1 == null || collectionObjects2 == null) { result = CheckNulls(collectionObjects1, collectionObjects2); } else { if (collectionObjects1.Count != collectionObjects2.Count) { result = false; } else { for (int idx = 0; idx < collectionObjects1.Count; idx++) { DocumentTestBuilders dtb = new DocumentTestBuilders(collectionObjects1[idx], collectionObjects2[idx]); result = dtb.Compare(); if (result == false) { break; } } } } return(result); }
private bool HandleCollection(PropertyInfo property, object object1, object object2) { bool result = true; if(property.Name == "ValidationErrors") { return result; } IList collectionObjects1 = (IList)property.GetValue(object1, null); IList collectionObjects2 = (IList)property.GetValue(object2, null); if (collectionObjects1 == null || collectionObjects2 == null) { result = CheckNulls(collectionObjects1, collectionObjects2); } else { if (collectionObjects1.Count != collectionObjects2.Count) { result = false; } else { for (int idx = 0; idx < collectionObjects1.Count; idx++) { DocumentTestBuilders dtb = new DocumentTestBuilders(collectionObjects1[idx], collectionObjects2[idx]); result = dtb.Compare(); if (result == false) break; } } } return result; }