private ReportAnalysis Read(ISymbolReader reader, ICoverageModule module)
        {
            var lines = new List<BlockLineRange>();
            var result = new ReportAnalysis();

            //These are unused
            uint id;
            string name;
            string uName;
            string cName;
            string aName;

            byte[] coverageBuffer = module.GetCoverageBuffer(null);
            while (reader.GetNextMethod(out id, out name, out uName, out cName, out aName, lines))
            {
                var stats = CoverageInfo.GetMethodStatistics(coverageBuffer, lines);
                result.LinesCovered += stats.LinesCovered;
                result.LinesPartiallyCovered += stats.LinesPartiallyCovered;
                result.LinesNotCovered += stats.LinesNotCovered;
                lines.Clear();
            }

            return result;
        }
        private async Task <ReportQuality> ConvertAnalisysToReportAnalisys(List <ProductionOrderQuality> productionQualityList)
        {
            ReportQuality report = new ReportQuality();

            report.Report = new List <ReportAnalysis>();

            foreach (var productionOrderQuality in productionQualityList)
            {
                foreach (var analisys in productionOrderQuality.Analysis)
                {
                    foreach (var comp in analisys.comp)
                    {
                        try{
                            ReportAnalysis reportAnalisys = new ReportAnalysis();

                            reportAnalisys.numberAnalysis = analisys.number;
                            reportAnalisys.date           = analisys.datetime;
                            reportAnalisys.op             = productionOrderQuality.productionOrderNumber;
                            reportAnalisys.status         = analisys.status;

                            var productionOrderGet = await ProductionOrderReport(productionOrderQuality.productionOrderId);

                            var phase         = productionOrderGet.recipe.phases.FirstOrDefault();
                            var productRecipe = phase.phaseProducts.Where(z => z.product.productId == comp.productId).FirstOrDefault();
                            reportAnalisys.productId      = comp.productId;
                            reportAnalisys.recipeMin      = productRecipe.minValue;
                            reportAnalisys.recipeMax      = productRecipe.maxValue;
                            reportAnalisys.productName    = productRecipe.product.productName;
                            reportAnalisys.resultAnalysis = comp.value;

                            var correction = analisys.messages.Where(x => x.key == reportAnalisys.productName).FirstOrDefault();
                            if (correction == null)
                            {
                                reportAnalisys.correction = "0";
                            }
                            else
                            {
                                reportAnalisys.correction = correction.value;
                            }

                            reportAnalisys.userName = analisys.userName;


                            report.Report.Add(reportAnalisys);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.ToString());
                        }
                    }
                }
            }
            return(report);
        }
        /***********************************************************************************************************************************************/
        /*******************Extract students from pdf*****************************************************/
        public ProjectVM GetStuFromPDF(int?id)
        {
            ReportAnalysis report   = new ReportAnalysis();
            ProjectVM      obj      = new ProjectVM();
            var            FileById = (from FC in db.SeniorProjects
                                       where FC.SPtId == id
                                       select FC.SPReport).ToList().FirstOrDefault();

            byte[] fileBytes = FileById;
            report.Analysis(fileBytes, obj);

            return(obj);
        }
        ReportAnalysis IReportAnalyzer.Analyze(string reportPath)
        {
            var result = new ReportAnalysis();

            using (var coverage = CoverageInfo.CreateFromFile(reportPath))
            {
                foreach (var module in coverage.Modules)
                {
                    using (var reader = module.Symbols.CreateReader())
                    {
                        var moduleReport = Read(reader, module);
                        result.LinesCovered += moduleReport.LinesCovered;
                        result.LinesNotCovered += moduleReport.LinesNotCovered;
                        result.LinesPartiallyCovered += moduleReport.LinesPartiallyCovered;
                    }
                }
            }

            result.Lines = result.LinesCovered + result.LinesNotCovered + result.LinesPartiallyCovered;
            var calcPercent = (double)(result.LinesNotCovered + result.LinesPartiallyCovered) / (double)result.Lines;
            result.PercentageCovered = (uint)Math.Truncate(100 - (calcPercent * 100));

            return result;
        }