/// <summary>
        /// Populates the ProfileReport template.
        /// </summary>
        /// <param name="templateData"></param>
        private static void WriteProfileEntry(ProfileReportSharedData templateData)
        {
            var template = new ProfileReport();

            template.Session = new Dictionary <string, object>()
            {
                { "SharedDataObject", templateData }
            };

            template.Initialize();
            profileReportWriter.WriteLine(template.TransformText());
        }
        /// <summary>
        /// Writes Results to File for a full Profile tested.
        /// </summary>
        /// <param name="OldId"></param>
        /// <param name="allTheResults"></param>
        /// <param name="profileProcessingDuration"></param>
        /// <param name="oldDataRQDuration"></param>
        /// <param name="newDataRQDuration"></param>
        public void LogProfileResult(int OldId, HashSet <ResultReport> allTheResults, TimeSpan profileProcessingDuration, TimeSpan oldDataRQDuration, TimeSpan newDataRQDuration)
        {
            lock (lockProfileOverview)
            {
                durationByProfile.Add(profileProcessingDuration);

                var severityByTestName = allTheResults.Select(x => new { x.TestName, x.Severity }).OrderBy(z => z.TestName).ToDictionary(x => x.TestName, x => x.Severity);
                var summaryProfileData = new ProfileReportSharedData()
                {
                    OldId = OldId,
                    SeverityByTestName     = severityByTestName,
                    LinkEnd2TestNameFile   = "_" + countFilesGenerated + HTM_EXTENSION,
                    DurationTestingProfile = profileProcessingDuration,
                    DurationDownloadingDataFromOldService = oldDataRQDuration,
                    DurationDownloadingDataFromNewService = newDataRQDuration
                };

                WriteProfileEntry(summaryProfileData);
            }
        }