Ejemplo n.º 1
0
        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;
        }