} // end WriteTree private void WriteLogList(StreamWriter strWriteOut, reportHeaders rh, IEnumerable <LogDO> logList, IEnumerable <TreeDO> tList, ref int pageNumb) { // output log data (not logstock) // printing is for 5 logs per line; positions 1-4 are the same until a new tree foreach (TreeDO tdo in tList) { // any logs for this tree? List <LogDO> currentLogs = LogMethods.GetLogRecords(logList, (long)tdo.Tree_CN).ToList(); int numbLogs = currentLogs.Count(); if (numbLogs > 0) { // how many iterations for the number of logs? int numIts = numbLogs / 5; int remainLogs = numbLogs - numIts * 5; // Need to round iterations to nearest whole number and save remainder to print all logs for (int n = 0; n < numIts; n++) { WriteReportHeading(strWriteOut, rh.reportTitles[0], rh.reportTitles[1], rh.reportTitles[2], rh.A08columns, 10, ref pageNumb, ""); switch (n) { case 0: // logs 1-5 prtFields = LogMethods.buildPrintArray(currentLogs, 0, 4); break; case 1: // logs 6-10 prtFields = LogMethods.buildPrintArray(currentLogs, 5, 9); break; case 2: // logs 11-15 prtFields = LogMethods.buildPrintArray(currentLogs, 10, 14); break; case 3: // logs 16-20 prtFields = LogMethods.buildPrintArray(currentLogs, 15, 19); break; } // end switch printOneRecord(fieldLengths, prtFields, strWriteOut); } // end for n loop // print remaining logs if needed if (remainLogs > 0) { WriteReportHeading(strWriteOut, rh.reportTitles[0], rh.reportTitles[1], rh.reportTitles[2], rh.A08columns, 10, ref pageNumb, ""); prtFields = LogMethods.buildPrintArray(currentLogs, numbLogs - remainLogs, numbLogs - 1); printOneRecord(fieldLengths, prtFields, strWriteOut); } // endif remaining logs } // endif number of logs } // end foreach loop return; } // end WriteLogList
} // end WriteLogList private void WriteFallBuckScale(StreamWriter strWriteOut, reportHeaders rh, List <TreeDO> justFBS, ref int pageNumb, IEnumerable <LogStockDO> lsList) { foreach (TreeDO tdo in justFBS) { // find logs for this tree IEnumerable <LogStockDO> fbsLogs = lsList.Where(lsdo => lsdo.Tree_CN == tdo.Tree_CN); if (fbsLogs.Any()) { foreach (LogStockDO lsd in fbsLogs) { WriteReportHeading(strWriteOut, rh.reportTitles[0], rh.reportTitles[1], rh.reportTitles[2], rh.A09columns, 10, ref pageNumb, ""); prtFields = LogMethods.buildPrintArray(lsd); printOneRecord(fieldLengths, prtFields, strWriteOut); } // end foreach loop } // endif } // end foreach loop return; } // end WriteFallBuckScale
} // end WriteFallBuckScale private void WriteLogStock(StreamWriter strWriteOut, reportHeaders rh, IEnumerable <LogStockDO> lsList, ref int pageNumb) { // outputs data from the logstock table -- primarily the L1 report foreach (LogStockDO lsdo in lsList) { if (numOlines >= 48) { numOlines = 0; } WriteReportHeading(strWriteOut, rh.reportTitles[0], rh.reportTitles[1], rh.reportTitles[2], rh.L1columns, 10, ref pageNumb, ""); // calulate total expansion factor -- expansion factor times strata acres double STacres = Utilities.ReturnCorrectAcres(lsdo.Tree.Stratum.Code, (long)lsdo.Tree.Stratum_CN); if (STacres == 0.0) { STacres = 1.0; } double totEF = lsdo.Tree.ExpansionFactor * STacres; prtFields = LogMethods.buildPrintArray(lsdo, totEF); printOneRecord(fieldLengths, prtFields, strWriteOut); } // end foreach loop return; } // end WriteLogStock