Example #1
0
        public override void Execute(params object[] args)
        {
            var builder = new StringBuilder();

            builder.AppendLine("Diagnostics.Execute()");
            builder.AppendLine(new string('-', 80));

            builder.AppendLine($"ONENOTE...: {Process.GetProcessesByName("ONENOTE")[0].MainModule.FileName}");
            builder.AppendLine($"Addin path: {Assembly.GetExecutingAssembly().Location}");
            builder.AppendLine($"Data path.: {PathFactory.GetAppDataPath()}");
            builder.AppendLine($"Log path..: {logger.LogPath}");
            builder.AppendLine();

            using (var one = new OneNote())
            {
                var(backupFolder, defaultFolder, unfiledFolder) = one.GetFolders();
                builder.AppendLine($"Default path: {defaultFolder}");
                builder.AppendLine($"Backup  path: {backupFolder}");
                builder.AppendLine($"Unfiled path: {unfiledFolder}");
                builder.AppendLine();

                var(Name, Path, Link) = one.GetPageInfo();
                builder.AppendLine($"Page name: {Name}");
                builder.AppendLine($"Page path: {Path}");
                builder.AppendLine($"Page link: {Link}");
                builder.AppendLine();

                one.ReportWindowDiagnostics(builder);

                builder.AppendLine();

                var page           = one.GetPage();
                var pageColor      = page.GetPageColor(out _, out _);
                var pageBrightness = pageColor.GetBrightness();

                builder.AppendLine($"Page background: {pageColor.ToRGBHtml()}");
                builder.AppendLine($"Page brightness: {pageBrightness}");
                builder.AppendLine($"Page is dark...: {pageBrightness < 0.5}");

                (float dpiX, float dpiY) = UIHelper.GetDpiValues();
                builder.AppendLine($"Screen DPI.....: horizontal/X:{dpiX} vertical/Y:{dpiY}");

                (float scalingX, float scalingY) = UIHelper.GetScalingFactors();
                builder.AppendLine($"Scaling factors: horizontal/X:{scalingX} vertical/Y:{scalingY}");

                builder.AppendLine(new string('-', 80));

                logger.WriteLine(builder.ToString());

                UIHelper.ShowInfo($"Diagnostics written to {logger.LogPath}");
            }
        }