public static void CreateCttr(string emFilePath, CttCaseCollection ecFilesPaths, string srcPath, string outputPath)
        {
            ReportDataModel previous = CreateModuleForCttr(emFilePath, ecFilesPaths, srcPath);

            FileStream fs = new FileStream(outputPath, FileMode.OpenOrCreate);
            BinaryFormatter bf = new BinaryFormatter();
            bf.Serialize(fs, previous);
            fs.Close();
            fs.Dispose();
        }
        private static ReportDataModel CreateModuleForCttr(string emFilePath, CttCaseCollection ecFilesPaths, string srcPath)
        {
            EmmaBinaryReader ebre = new EmmaBinaryReader(emFilePath);
            MetaDataDescriptor edata = (MetaDataDescriptor)LoadEmmaFile(ebre);
            ebre.Close();
            CaseCoverageDescriptor ccdata = new CaseCoverageDescriptor();

            foreach (CttCase cttCase in ecFilesPaths.CoverageFilePaths)
            {
                EmmaBinaryReader ebrc = new EmmaBinaryReader(cttCase.ResultPath);
                CoverageDataDescriptor cdata = (CoverageDataDescriptor)LoadEmmaFile(ebrc);
                ebrc.Close();

                ccdata.MergeCaseCoverageData(cdata, cttCase.CaseId);
            }

            ReportDataModel previous = new Report.ReportDataModel();
            RootItem root = previous.CreateViewForCaseCoverage(edata, ccdata, srcPath);
            return previous;
        }
 public static void CheckCoverage(string emFilePath, CttCaseCollection ecFilesPaths, string srcPath, string cttdPath)
 {
     DiffItem diffItem = LoadDiff(cttdPath);
     ReportDataModel data = CreateModuleForCttr(emFilePath, ecFilesPaths, srcPath);
     diffItem = data.CheckCoverage(diffItem);
 }