Esempio n. 1
0
        /// <summary>
        /// Creates a report of the open coverage data.
        /// </summary>
        public void CreateCoverageReport()
        {
            var config = new ReportConfigurationModel();

            // set some defaults.
            config.ProjectName = CoverageRows.FirstOrDefault()?.DisplayName;

            var configDlg = new ReportConfigurationDlg(config);

            configDlg.Owner = Owner;

            // note: nullable bools...
            if (configDlg.ShowDialog() == true)
            {
                var writer = new CoverageWriter();
                writer.WriteReport(CoverageRows.Select(vm => vm.Model), config);


                if (config.OpenWhenDone)
                {
                    Process.Start(
                        new ProcessStartInfo
                    {
                        FileName        = config.DestinationPath,
                        UseShellExecute = true,
                    }
                        );
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Opens a coverage file..
        /// </summary>
        /// <param name="path">
        /// The path to the file to open. If null or empty, the user is prompted to select a file.
        /// </param>
        public void OpenFile(string path)
        {
            bool canceled = false;

            // if we were not given a path, let the user browse for one.
            if (string.IsNullOrEmpty(path))
            {
                //TODO (testing): hide this behind a service interface
                var ofd = new OpenFileDialog
                {
                    Filter      = "Coverage XML File (*.coveragexml)|*.coveragexml",
                    Multiselect = false,
                };

                if (!string.IsNullOrEmpty(Settings.Default.CoverageXmlDirectory))
                {
                    ofd.InitialDirectory = Settings.Default.CoverageXmlDirectory;
                }

                try
                {
                    ofd.FileOk += CheckFileOpenOK;

                    if (ofd.ShowDialog(Owner) == true)
                    {
                        path = ofd.FileName;

                        Settings.Default.CoverageXmlDirectory = Path.GetDirectoryName(path);
                        Settings.Default.Save();
                    }
                    else
                    {
                        // user canceled
                        canceled = true;
                    }
                }
                finally
                {
                    ofd.FileOk -= CheckFileOpenOK;
                }
            }

            if (!canceled)
            {
                var reader = new CoverageReader();

                var model = reader.ReadCoverageXml(path);
                model.AdditionalData["FullPath"] = path;

                CoverageRows.Add(new CoverageNodeViewModel(model));
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Removes the selected node and all of its children.
        /// </summary>
        private void RemoveSelectedNode()
        {
            if (SelectedCoverageRow != null)
            {
                CoverageNodeViewModel parent = SelectedCoverageRow.Parent;

                if (parent != null)
                {
                    // non-root node.
                    parent.RemoveChild(SelectedCoverageRow);

                    // rebuild the row list.
                    RebuildRowList();
                }
                else
                {
                    // removing a root, just remove from CoverageRows and let the
                    // CollectionChanged handler deal with updating the list.
                    CoverageRows.Remove(SelectedCoverageRow);
                }
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Saves a coverage file.
        /// </summary>
        /// <param name="path">
        /// The path to save the file to. IF null or empty, the user is prompted to select the file path.
        /// </param>
        public void SaveFile(string path)
        {
            bool canceled = false;

            // if we were not given a path, let the user browse for one.
            if (string.IsNullOrEmpty(path))
            {
                //TODO (testing): hide this behind a service interface
                var sfd = new SaveFileDialog
                {
                    Filter = "Coverage XML File (*.coveragexml)|*.coveragexml",
                };

                if (!string.IsNullOrEmpty(Settings.Default.CoverageXmlDirectory))
                {
                    sfd.InitialDirectory = Settings.Default.CoverageXmlDirectory;
                }

                if (sfd.ShowDialog(Owner) == true)
                {
                    path = sfd.FileName;

                    Settings.Default.CoverageXmlDirectory = Path.GetDirectoryName(path);
                    Settings.Default.Save();
                }
                else
                {
                    // user canceled
                    canceled = true;
                }
            }

            if (!canceled)
            {
                var writer = new CoverageWriter();
                writer.WriteCoverageXml(CoverageRows.Select(vm => vm.Model), path);
            }
        }