コード例 #1
0
        public void Compare_StringAndValue_True()
        {
            var comparer = new TextComparer();
            var result   = comparer.Compare("string", "(value)");

            Assert.That(result.AreEqual, Is.True);
        }
コード例 #2
0
        public void Compare_1AndBlankPlaceHolder_False()
        {
            var comparer = new TextComparer();
            var result   = comparer.Compare(1, "(blank)");

            Assert.That(result.AreEqual, Is.False);
        }
コード例 #3
0
        public void Compare_NullAndBlankPlaceHolder_True()
        {
            var comparer = new TextComparer();
            var result   = comparer.Compare(null, "(blank)");

            Assert.That(result.AreEqual, Is.True);
        }
コード例 #4
0
        public void Compare_EmptyAndEmptyPlaceHolder_True()
        {
            var comparer = new TextComparer();
            var result   = comparer.Compare(string.Empty, "(empty)");

            Assert.That(result.AreEqual, Is.True);
        }
コード例 #5
0
        public void Compare_NullAndEmptyPlaceHolder_False()
        {
            var comparer = new TextComparer();
            var result   = comparer.Compare(null, "(empty)");

            Assert.That(result.AreEqual, Is.False);
        }
コード例 #6
0
        public void Compare_NullAndValue_False()
        {
            var comparer = new TextComparer();
            var result   = comparer.Compare(null, "(value)");

            Assert.That(result.AreEqual, Is.False);
        }
コード例 #7
0
        public void Compare_NullAndString_False()
        {
            var comparer = new TextComparer();
            var result   = comparer.Compare(null, "string");

            Assert.That(result.AreEqual, Is.False);
        }
コード例 #8
0
ファイル: FindWindow.cs プロジェクト: Healix/Gw2Launcher
        public static List <SearchResult> FindChildren(IntPtr parent, TextComparer className, TextComparer text, int limit)
        {
            SearchData sd = new SearchData
            {
                limit     = limit,
                className = className,
                text      = text,
                buffer    = new StringBuilder(250),
                results   = new List <SearchResult>()
            };

            var h = GCHandle.Alloc(sd);

            try
            {
                EnumChildWindows(parent, new EnumWindowsProc(EnumWindow), GCHandle.ToIntPtr(h));
            }
            finally
            {
                if (h.IsAllocated)
                {
                    h.Free();
                }
            }

            return(sd.results);
        }
コード例 #9
0
        public void Compare_NullAndAny_True()
        {
            var comparer = new TextComparer();
            var result   = comparer.Compare(null, "(any)");

            Assert.That(result.AreEqual, Is.True);
        }
コード例 #10
0
        private void ProtoTestSingle(IEnumerable <string> testProtoNames, bool ignoreCsProj = false, bool ignoreSnippets  = false, bool ignoreUnitTests = false,
                                     string grpcServiceConfigPath = null, IEnumerable <string> commonResourcesConfigPaths = null)
        {
            // Confirm each generated file is idential to the expected output.
            // Use `// TEST_START` and `// TEST_END` lines in the expected file to test subsets of output files.
            // Or include `// TEST_DISABLE` to disable testing of the entire file.
            var dirName    = testProtoNames.First();
            var protoPaths = testProtoNames.Select(x => Path.Combine("ProtoTests", dirName, $"{x}.proto"));
            var files      = Run(protoPaths, $"testing.{dirName.ToLowerInvariant()}",
                                 grpcServiceConfigPath, commonResourcesConfigPaths);

            // Check output is present.
            Assert.NotEmpty(files);
            // Verify each output file.
            foreach (var file in files)
            {
                if ((ignoreCsProj && file.RelativePath.EndsWith(".csproj")) ||
                    (ignoreSnippets && file.RelativePath.Contains($".Snippets{Path.DirectorySeparatorChar}")) ||
                    (ignoreUnitTests && file.RelativePath.Contains($".Tests{Path.DirectorySeparatorChar}")))
                {
                    continue;
                }
                var expectedFilePath = Path.Combine(Invoker.GeneratorTestsDir, "ProtoTests", dirName, file.RelativePath);

                TextComparer.CompareText(expectedFilePath, file);
            }
        }
コード例 #11
0
        internal static void TestOutput(string directory, bool ignoreCsProj = false, bool ignoreConfig = false)
        {
            var resourceDirectory = Path.Combine(TestDirectory, "GoldenTestData", directory);
            var json     = File.ReadAllText(Path.Combine(resourceDirectory, "discovery.json"));
            var features = new Features
            {
                ReleaseVersion        = "1.49.0",
                CurrentSupportVersion = "1.49.0",
                Net40SupportVersion   = "1.25.0",
                PclSupportVersion     = "1.10.0"
            };
            PackageEnumStorage enumStorage = PackageEnumStorage.FromJson("{}");
            var files = CodeGenerator.Generate(json, features, enumStorage).ToList();

            // Check output is present.
            Assert.NotEmpty(files);

            foreach (var file in files)
            {
                if ((ignoreCsProj && file.RelativePath.EndsWith(".csproj")) ||
                    (ignoreConfig && file.RelativePath.EndsWith(".config")))
                {
                    continue;
                }
                var expectedFilePath = Path.Combine(TestDirectory, "GoldenTestData", directory, file.RelativePath);

                TextComparer.CompareText(expectedFilePath, file);
            }

            // TODO: Validate enum storage
        }
コード例 #12
0
        static void Main(string[] args)
        {
            // Load first document
            TextExtractor document1 = new TextExtractor();

            document1.RegistrationName = "demo";
            document1.RegistrationKey  = "demo";
            document1.LoadDocumentFromFile(@".\comparison1.pdf");

            // Load second  document
            TextExtractor document2 = new TextExtractor();

            document2.RegistrationName = "demo";
            document2.RegistrationKey  = "demo";
            document2.LoadDocumentFromFile(@".\comparison2.pdf");

            // Compare documents
            TextComparer comparer = new TextComparer();

            comparer.RegistrationName = "demo";
            comparer.RegistrationKey  = "demo";
            comparer.Compare(document1, document2);

            // Generate report
            comparer.GenerateHtmlReport(@".\report.html");

            document1.Dispose();
            document2.Dispose();

            // Open the report in default browser
            System.Diagnostics.Process.Start(@".\report.html");
        }
コード例 #13
0
        public void Compare_StringAndSubstring_False()
        {
            var comparer = new TextComparer();
            var result   = comparer.Compare("string", "str");

            Assert.That(result.AreEqual, Is.False);
        }
コード例 #14
0
        public void Compare_StringAndSameStringUppercase_False()
        {
            var comparer = new TextComparer();
            var result   = comparer.Compare("string", "STRING");

            Assert.That(result.AreEqual, Is.False);
        }
コード例 #15
0
        public void Compare_IgnoreCase_true(string def)
        {
            var tolerance = new TextToleranceFactory().Instantiate(def);
            var comparer  = new TextComparer();
            var result    = comparer.Compare("Seddryck", "seddryck", tolerance);

            Assert.That(result.AreEqual, Is.True);
        }
コード例 #16
0
        public void Compare_LargeDifference_False(string def)
        {
            var tolerance = new TextToleranceFactory().Instantiate(def);
            var comparer  = new TextComparer();
            var result    = comparer.Compare("Seddryck", "Undefined", tolerance);

            Assert.That(result.AreEqual, Is.False);
        }
コード例 #17
0
        public void SuccessEqualsComparison()
        {
            var rule            = "gray";
            var valueToEvaluate = "gray";
            var actual          = TextComparer.Equals(valueToEvaluate, rule);

            Assert.True(actual);
        }
コード例 #18
0
        public void FailureEndsWithComparison()
        {
            var rule            = "boxes";
            var valueToEvaluate = "bo";
            var actual          = TextComparer.EndsWith(valueToEvaluate, rule);

            Assert.False(actual);
        }
コード例 #19
0
        public void FailureContainsComparison()
        {
            var rule            = "boxes";
            var valueToEvaluate = "not";
            var actual          = TextComparer.Contains(valueToEvaluate, rule);

            Assert.False(actual);
        }
コード例 #20
0
        public void SuccessEndsWithComparison()
        {
            var rule            = "gray";
            var valueToEvaluate = "ay";
            var actual          = TextComparer.EndsWith(rule, valueToEvaluate);

            Assert.True(actual);
        }
コード例 #21
0
        public void SuccessContainsComparison()
        {
            var rule            = "gray";
            var valueToEvaluate = "a";
            var actual          = TextComparer.Contains(rule, valueToEvaluate);

            Assert.True(actual);
        }
コード例 #22
0
        private void calculate_pem_total(ActivityRates activityRates)
        {
            if (objectListView_documents.Items.Count > 0 && activityRates.LanguageRateName.Trim() != string.Empty)
            {
                numericUpDown_pem_rate_total.Value = 0;
                label_rate_currency.Text           = activityRates.LanguageRateCurrency;

                var tcc = new TextComparer {
                    Type = TextComparer.ComparisonType.Words
                };


                var dictTcas = new Dictionary <string, List <DocumentActivity> >();
                foreach (var documentActivity in DocumentActivities)
                {
                    if (!dictTcas.ContainsKey(documentActivity.DocumentId))
                    {
                        dictTcas.Add(documentActivity.DocumentId, new List <DocumentActivity> {
                            documentActivity
                        });
                    }
                    else
                    {
                        dictTcas[documentActivity.DocumentId].Add(documentActivity);
                    }
                }


                foreach (var kvp in dictTcas)
                {
                    var mergedDocuments = new MergedDocuments(kvp.Value, Activity, tcc, activityRates);


                    if (mergedDocuments.LanguageRate != null)
                    {
                        var exactWordsPem = mergedDocuments.LanguageRate.Rate100 * mergedDocuments.ExactWords;
                        var p99WordsPem   = mergedDocuments.LanguageRate.Rate95 * mergedDocuments.Fuzzy99Words;
                        var p94WordsPem   = mergedDocuments.LanguageRate.Rate85 * mergedDocuments.Fuzzy94Words;
                        var p84WordsPem   = mergedDocuments.LanguageRate.Rate75 * mergedDocuments.Fuzzy84Words;
                        var p74WordsPem   = mergedDocuments.LanguageRate.Rate50 * mergedDocuments.Fuzzy74Words;
                        var newWordsPem   = mergedDocuments.LanguageRate.RateNew * mergedDocuments.NewWords;

                        var totalWordsPem = exactWordsPem + p99WordsPem + p94WordsPem + p84WordsPem + p74WordsPem + newWordsPem;

                        numericUpDown_pem_rate_total.Value += totalWordsPem;
                    }
                }
            }
            else
            {
                numericUpDown_pem_rate_total.Value = 0;
                label_rate_currency.Text           = Tracked.Settings.GetGeneralProperty("defaultCurrency").Value;
            }

            check_activity_rate_total();
        }
コード例 #23
0
        public static List <SearchResult> FindChildren(IntPtr parent, TextComparer className, TextComparer text, int limit)
        {
            SearchData sd = new SearchData
            {
                limit     = limit,
                className = className,
                text      = text,
                buffer    = new StringBuilder(250),
                results   = new List <SearchResult>()
            };

            EnumChildWindows(parent, new EnumWindowsProc(EnumWindow), ref sd);

            return(sd.results);
        }
コード例 #24
0
        private void ProtoTestSingle(IEnumerable <string> testProtoNames, string sourceDir = null, string outputDir = null, string package = null,
                                     bool ignoreCsProj            = false, bool ignoreSnippets = false, bool ignoreUnitTests = false,
                                     string grpcServiceConfigPath = null, string serviceConfigPath   = null, IEnumerable <string> commonResourcesConfigPaths = null, ApiTransports transports = ApiTransports.Grpc,
                                     bool ignoreGapicMetadataFile = true, bool ignoreApiMetadataFile = true, bool ignoreServiceExtensionsFile = true)
        {
            // Confirm each generated file is identical to the expected output.
            // Use `// TEST_START` and `// TEST_END` lines in the expected file to test subsets of output files.
            // Or include `// TEST_DISABLE` to disable testing of the entire file.
            sourceDir = sourceDir ?? testProtoNames.First();
            outputDir = outputDir ?? sourceDir;
            var protoPaths = testProtoNames.Select(x => Path.Combine("ProtoTests", sourceDir, $"{x}.proto"));

            package = package ?? $"testing.{sourceDir.ToLowerInvariant()}";

            var files = Run(protoPaths, package,
                            grpcServiceConfigPath, serviceConfigPath, commonResourcesConfigPaths, transports);

            // Check output is present.
            Assert.NotEmpty(files);

            // Write all output files to the temporary directory before validating any.
            // This makes it easier to see the complete set of outputs.
            foreach (var file in files)
            {
                var pathToWriteTo = Path.Combine(Invoker.ActualGeneratedFilesDir, outputDir, file.RelativePath);
                Directory.CreateDirectory(Path.GetDirectoryName(pathToWriteTo));
                File.WriteAllText(pathToWriteTo, file.Content);
            }

            // Verify each output file.
            foreach (var file in files)
            {
                if ((ignoreCsProj && file.RelativePath.EndsWith(".csproj")) ||
                    (ignoreSnippets && file.RelativePath.Contains($".Snippets{Path.DirectorySeparatorChar}")) ||
                    (ignoreSnippets && file.RelativePath.Contains($".GeneratedSnippets{Path.DirectorySeparatorChar}")) ||
                    (ignoreUnitTests && file.RelativePath.Contains($".Tests{Path.DirectorySeparatorChar}")) ||
                    (ignoreGapicMetadataFile && file.RelativePath.EndsWith("gapic_metadata.json")) ||
                    (ignoreApiMetadataFile && file.RelativePath.EndsWith(PackageApiMetadataGenerator.FileName)) ||
                    (ignoreServiceExtensionsFile && file.RelativePath.EndsWith(ServiceCollectionExtensionsGenerator.FileName)))
                {
                    continue;
                }
                var expectedFilePath = Path.Combine(Invoker.GeneratorTestsDir, "ProtoTests", outputDir, file.RelativePath);
                TextComparer.CompareText(expectedFilePath, file);
            }
        }
コード例 #25
0
        internal static void TestOutput(string directory, bool ignoreCsProj = false, bool ignoreConfig = false)
        {
            var resourceDirectory = Path.Combine(TestDirectory, "GoldenTestData", directory);
            var json  = File.ReadAllText(Path.Combine(resourceDirectory, "discovery.json"));
            var files = CodeGenerator.Generate(json).ToList();

            // Check output is present.
            Assert.NotEmpty(files);

            foreach (var file in files)
            {
                if ((ignoreCsProj && file.RelativePath.EndsWith(".csproj")) ||
                    (ignoreConfig && file.RelativePath.EndsWith(".config")))
                {
                    continue;
                }
                var expectedFilePath = Path.Combine(TestDirectory, "GoldenTestData", directory, file.RelativePath);

                TextComparer.CompareText(expectedFilePath, file);
            }
        }
コード例 #26
0
ファイル: MainForm.cs プロジェクト: qmark/AntiPFIT
        private void CompareTextButton_Click(object sender, EventArgs e)
        {
            Stopwatch s = new Stopwatch();

            s.Start();

            var oldText = TextDocumentManager.SimplifiedTextFromFile(oldTextFile);
            var newText = TextDocumentManager.SimplifiedTextFromFile(newTextFile);

            s.Stop();
            textBox2.Text += $"\tReading: {s.Elapsed}" + Environment.NewLine;
            s.Restart();

            var diffResuls = TextComparer.CompareByWords(oldText, newText);

            //CompareLines(oldText, newText);

            richTextBox1.ShowDifferences(diffResuls);

            s.Stop();
            textBox2.Text += $"\tComparing: {s.Elapsed}" + Environment.NewLine;
        }
コード例 #27
0
        private bool ExecuteComparer(Assert assert)
        {
            switch (assert.Rule)
            {
            case ComparerType.REGEX:
                return(RegexComparer.Compare(assert.Actual, assert.Expect));

            case ComparerType.TEXTCONTAINS:
                return(TextComparer.Contains(assert.Actual, assert.Expect));

            case ComparerType.TEXTSTARTSWITH:
                return(TextComparer.StartsWith(assert.Actual, assert.Expect));

            case ComparerType.TEXTENDSWITH:
                return(TextComparer.EndsWith(assert.Actual, assert.Expect));

            case ComparerType.TEXTEQUALS:
                return(TextComparer.Equals(assert.Actual, assert.Expect));

            case ComparerType.ACCEPTALL:
                return(true);

            case ComparerType.JSONCONTAINS:
                return(JsonComparer.DeepContains(assert.Expect, assert.Actual));

            case ComparerType.JSONEQUALITY:
                return(JsonComparer.DeepEqual(assert.Expect, assert.Actual));

            case ComparerType.JSONSCHEMA:
                return(JsonComparer.MatchesSchema(assert.Actual, assert.Expect));

            case ComparerType.JSONPATH:
                return(JsonComparer.PathEqual(assert.Expect, assert.Actual));

            default:
                return(false);
            }
        }
コード例 #28
0
        private static List <ComparisonUnit> ComparisonUnitDifferences(TrackedDocuments trackedDocument, List <ContentSection> targetSectionsCurrent,
                                                                       KeyStroke keyStroke)
        {
            //compare at a character level to understand what was added or removed (no transposition)
            var textComparer = new TextComparer {
                Type = TextComparer.ComparisonType.Characters
            };
            var comparisonUnits = textComparer.GetComparisonTextUnits(trackedDocument.ActiveSegment.CurrentTargetSections,
                                                                      targetSectionsCurrent, false);

            // clean up the removed selection from the current placeholder; we are only looking for what is new from this holder
            if (trackedDocument.ActiveSegment.CurrentTargetSelection.Length <= 2)
            {
                return(comparisonUnits);
            }

            try
            {
                var indexCharDiffStart = 0;
                foreach (var comparisonUnit in comparisonUnits)
                {
                    if (comparisonUnit.Type == ComparisonUnit.ComparisonType.Identical)
                    {
                        indexCharDiffStart += comparisonUnit.Text.Length;
                    }
                    else
                    {
                        break;
                    }
                }
                if (indexCharDiffStart > trackedDocument.ActiveSegment.CurrentTargetSelection.Length)
                {
                    indexCharDiffStart = indexCharDiffStart - trackedDocument.ActiveSegment.CurrentTargetSelection.Length;
                }

                var indexCharDiffCounter = 0;
                foreach (var contentSection in trackedDocument.ActiveSegment.CurrentTargetSections)
                {
                    indexCharDiffCounter += contentSection.Content.Length;
                    if (indexCharDiffCounter < indexCharDiffStart)
                    {
                        continue;
                    }

                    var indexStartingPointA = indexCharDiffCounter - contentSection.Content.Length;
                    var indexStartingPointB = indexStartingPointA;
                    if (indexCharDiffStart > indexStartingPointA)
                    {
                        indexStartingPointB = indexCharDiffStart - indexStartingPointA;
                    }

                    var indexStartingPointBBefore = contentSection.Content.Substring(0, indexStartingPointB);
                    var indexStartingPointBAfter  = contentSection.Content.Substring(indexStartingPointB);

                    if (indexStartingPointBAfter.IndexOf(trackedDocument.ActiveSegment.CurrentTargetSelection, StringComparison.Ordinal) <= -1)
                    {
                        continue;
                    }

                    //remove the selection
                    var indexBefore = indexStartingPointBAfter.IndexOf(keyStroke.Selection, StringComparison.Ordinal);
                    var strBefore   = indexStartingPointBAfter.Substring(0, indexBefore);
                    var strAfter    = indexStartingPointBAfter.Substring(indexBefore + trackedDocument.ActiveSegment.CurrentTargetSelection.Length);

                    contentSection.Content = indexStartingPointBBefore + strBefore + strAfter;

                    //redo the comparison
                    comparisonUnits = textComparer.GetComparisonTextUnits(trackedDocument.ActiveSegment.CurrentTargetSections, targetSectionsCurrent, false);
                    break;
                }
            }
            catch
            {
                //ignore here for now
            }
            return(comparisonUnits);
        }
コード例 #29
0
ファイル: TextEqual.cs プロジェクト: ywscr/NBi
        protected override bool ApplyWithReference(object reference, object x)
        {
            var cpr = new TextComparer();

            return(cpr.Compare(x, reference).AreEqual);
        }
コード例 #30
0
        private void button_ok_Click(object sender, EventArgs e)
        {
            var tcc = new TextComparer {
                Type = TextComparer.ComparisonType.Words
            };


            #region  |  create lists  |
            var tpas = new List <Activity>();


            foreach (var tp in Tracked.TrackingProjects.TrackerProjects)
            {
                foreach (var tpa in tp.Activities)
                {
                    if (radioButton1.Checked)
                    {
                        #region  |  ids_selected  |

                        if (IdsSelected.Contains(tpa.Id))
                        {
                            tpas.Add(tpa);
                        }

                        #endregion
                    }
                    else if (radioButton2.Checked)
                    {
                        #region  |  ids_all  |

                        if (IdsAll.Contains(tpa.Id))
                        {
                            tpas.Add(tpa);
                        }

                        #endregion
                    }
                    else
                    {
                        tpas.Add(tpa);
                    }
                }
            }


            var dasDictList = new List <DocumentActivity>();
            foreach (var tpa in tpas)
            {
                dasDictList.AddRange(Helper.GetDocumentActivityObjects(tpa));
            }

            #endregion

            #region  |  create output data  |
            var xmlDasList = new List <XmlDocumentActivity>();
            foreach (var da in dasDictList)
            {
                var      foundActivity = false;
                Activity tpa           = null;
                foreach (var _tpa in tpas)
                {
                    var da1 = da;
                    if (!_tpa.Activities.Exists(a => a.DocumentId == da1.DocumentId))
                    {
                        continue;
                    }
                    foundActivity = true;
                    tpa           = _tpa;
                    break;
                }


                if (foundActivity)
                {
                    foreach (var record in da.Records)
                    {
                        var xmlDas = new XmlDocumentActivity
                        {
                            ProjectId                 = da.ProjectId,
                            ActivityId                = da.ProjectActivityId,
                            ActivityName              = tpa.Name,
                            RecordId                  = record.Id.ToString(),
                            DocumentId                = da.DocumentId,
                            DocumentName              = da.TranslatableDocument.DocumentName,
                            DocumentStartDate         = da.Started,
                            DocumentStopDate          = da.Stopped,
                            DocumentTotalSeconds      = da.TicksActivity / 10000000,
                            ParagraphId               = record.ParagraphId,
                            SegmentId                 = record.SegmentId,
                            OriginalConfirmationLevel = record.TranslationOrigins.Original.ConfirmationLevel,
                            OriginalTranslationStatus = record.TranslationOrigins.Original.TranslationStatus,
                            OriginalOriginSystem      = record.TranslationOrigins.Original.OriginSystem,
                            OriginalOriginType        = record.TranslationOrigins.Original.OriginType,
                            UpdatedConfirmationLevel  = record.TranslationOrigins.Updated.ConfirmationLevel,
                            UpdatedTranslationStatus  = record.TranslationOrigins.Updated.TranslationStatus,
                            UpdatedOriginSystem       = record.TranslationOrigins.Updated.OriginSystem,
                            UpdatedOriginType         = record.TranslationOrigins.Updated.OriginType,
                            SourceLang                = da.TranslatableDocument.SourceLanguage,
                            TargetLang                = da.TranslatableDocument.TargetLanguage,
                            SourceText                =
                                Helper.GetCompiledSegmentText(record.ContentSections.SourceSections,
                                                              tpa.ComparisonOptions.IncludeTagsInComparison),
                            TargetText =
                                Helper.GetCompiledSegmentText(record.ContentSections.TargetOriginalSections,
                                                              tpa.ComparisonOptions.IncludeTagsInComparison),
                            UpdatedText =
                                Helper.GetCompiledSegmentText(record.ContentSections.TargetUpdatedSections,
                                                              tpa.ComparisonOptions.IncludeTagsInComparison)
                        };



                        if (xmlDas.OriginalTranslationStatus == string.Empty && xmlDas.TargetText.Trim() == string.Empty)
                        {
                            xmlDas.OriginalTranslationStatus = @"Not Translated";
                        }



                        xmlDas.StartDate        = record.Started;
                        xmlDas.StopDate         = record.Stopped;
                        xmlDas.TotalSeconds     = record.TicksElapsed / 10000000;
                        xmlDas.TotalMiliseconds = record.TicksElapsed / 10000;



                        var dld = new EditDistance(record, tpa);

                        xmlDas.WordsSource          = record.WordCount;
                        xmlDas.EditDistance         = dld.Edits;
                        xmlDas.EditDistanceRelative = dld.EditDistanceRelative;
                        xmlDas.PemPercentage        = string.Compare(record.TranslationOrigins.Updated.OriginType, @"interactive", StringComparison.OrdinalIgnoreCase) == 0 ? dld.PemPercentage : 100;


                        if (checkBox_includeKeystokeData.Checked)
                        {
                            xmlDas.KeyStrokes = record.TargetKeyStrokes;
                        }

                        if (record.QualityMetrics != null)
                        {
                            xmlDas.QualityMetrics = record.QualityMetrics;
                        }



                        #region  |  comments  |
                        xmlDas.CommentsStr = string.Empty;
                        xmlDas.Comments    = record.Comments;
                        if (record.Comments != null && record.Comments.Count > 0)
                        {
                            foreach (var comment in record.Comments)
                            {
                                if (comment.Created != null)
                                {
                                    xmlDas.CommentsStr += (xmlDas.CommentsStr.Trim() != string.Empty ? "\r\n\r\n" : string.Empty)
                                                          + PluginResources.Created_ + Helper.GetStringFromDateTimeMilli(comment.Created.Value)
                                                          + PluginResources._Severity_ + comment.Severity
                                                          + PluginResources._Author_ + comment.Author
                                                          + PluginResources._Comment_ + comment.Content;
                                }
                            }
                        }
                        #endregion

                        xmlDasList.Add(xmlDas);
                    }
                }
            }


            #endregion



            var exportToFile = new ExportToFile();
            if (radioButton_export_to_excel.Checked)
            {
                exportToFile.create_excel_report(textBox_folder_path.Text, tpas, xmlDasList);
            }
            else if (radioButton_export_to_xml.Checked)
            {
                exportToFile.create_xml_report(textBox_folder_path.Text, tpas, xmlDasList);
            }


            if (checkBox_view_reprot_when_complete.Checked)
            {
                Process.Start(textBox_folder_path.Text);
            }
        }