private bool CompareEditorToBaseline(bool allowOverride = true) { var baseline = EditorBaseline; var isInstalled = (EditorBaselineType == BaselineType.Installed); // Check for comparison override if (allowOverride) { if (CompareSaved && EditorBaselineType == BaselineType.Installed) { baseline = SelectedSavedProperty; } else if (CompareInstalled && EditorBaselineType != BaselineType.Installed) { baseline = SelectedInstalledProperty; isInstalled = true; } } if (baseline == null) { DifferencesText = "No baseline property selected"; return(false); } var differences = EditorConfig.CompareTo(baseline, isInstalled); if (differences.Count > 0) { var sb = new StringBuilder(); foreach (var d in differences) { sb.AppendLine($"{d.Name} changed from '{d.Previous}' to '{d.Current}'"); } DifferencesText = sb?.ToString(); return(true); } else { DifferencesText = "No differences"; return(false); } //var compare = new CompareLogic(); //compare.Config.MaxDifferences = int.MaxValue; //compare.Config.CompareChildren = false; //var result = compare.Compare(baseline, EditorConfig); //StringBuilder sb = null; //bool different = false; //if (!result.AreEqual) //{ // sb = new StringBuilder(); // //sb.AppendLine("Differences are:"); // foreach (var d in result.Differences) // { // if (!isInstalled || // !PropertyConfig.InstalledExclusions.Contains(d.PropertyName)) // { // sb.AppendLine($"{d.PropertyName} changed from '{d.Object1Value}' to '{d.Object2Value}'"); // different = true; // } // } //} //if (different) // DifferencesText = sb.ToString(); //else // DifferencesText = "No differences"; //return different; }