private void WriteErrors(ISheet errorsSheet, COBieErrorCollection errorCollection) { // Write Header var summary = errorCollection .GroupBy(row => new { row.SheetName, row.FieldName, row.ErrorType }) .Select(grp => new { grp.Key.SheetName, grp.Key.ErrorType, grp.Key.FieldName, CountError = grp.Count(err => err.ErrorLevel == COBieError.ErrorLevels.Error), CountWarning = grp.Count(err => err.ErrorLevel == COBieError.ErrorLevels.Warning) }) .OrderBy(r => r.SheetName); //just in case we do not have ErrorLevel property in sheet COBieErrorCollection COBieError if (!HasErrorLevel) { summary = errorCollection .GroupBy(row => new { row.SheetName, row.FieldName, row.ErrorType }) .Select(grp => new { grp.Key.SheetName, grp.Key.ErrorType, grp.Key.FieldName, CountError = grp.Count(), CountWarning = 0 }) .OrderBy(r => r.SheetName); } //Add Header if (_row == 0) { IRow excelRow = errorsSheet.GetRow(0) ?? errorsSheet.CreateRow(0); int col = 0; ICell excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue("Sheet Name"); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue("Field Name"); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue("Error Type"); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue("Error Count"); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue("Warning Count"); // now update row _row++; } foreach (var error in summary) { IRow excelRow = errorsSheet.GetRow(_row + 1) ?? errorsSheet.CreateRow(_row + 1); int col = 0; ICell excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue(error.SheetName); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue(error.FieldName); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue(error.ErrorType.ToString()); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue(error.CountError); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue(error.CountWarning); // now update row _row++; } for (int c = 0; c < 5; c++) { errorsSheet.AutoSizeColumn(c); } }
private void WriteErrors(ISheet errorsSheet, COBieErrorCollection errorCollection) { // Write Header var summary = errorCollection .GroupBy(row => new { row.SheetName, row.FieldName, row.ErrorType }) .Select(grp => new { grp.Key.SheetName, grp.Key.ErrorType, grp.Key.FieldName, CountError = grp.Count(err => err.ErrorLevel == COBieError.ErrorLevels.Error), CountWarning = grp.Count(err => err.ErrorLevel == COBieError.ErrorLevels.Warning) }) .OrderBy(r => r.SheetName); //just in case we do not have ErrorLevel property in sheet COBieErrorCollection COBieError if (!hasErrorLevel) { summary = errorCollection .GroupBy(row => new { row.SheetName, row.FieldName, row.ErrorType }) .Select(grp => new { grp.Key.SheetName, grp.Key.ErrorType, grp.Key.FieldName, CountError = grp.Count(), CountWarning = 0 }) .OrderBy(r => r.SheetName); } //Add Header if (_row == 0) { IRow excelRow = errorsSheet.GetRow(0) ?? errorsSheet.CreateRow(0); int col = 0; ICell excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue("Sheet Name"); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue("Field Name"); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue("Error Type"); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue("Error Count"); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue("Warning Count"); col++; _row++; } foreach(var error in summary) { IRow excelRow = errorsSheet.GetRow(_row + 1) ?? errorsSheet.CreateRow(_row + 1); int col = 0; ICell excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue(error.SheetName); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue(error.FieldName); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue(error.ErrorType.ToString()); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue(error.CountError); col++; excelCell = excelRow.GetCell(col) ?? excelRow.CreateCell(col); excelCell.SetCellValue(error.CountWarning); col++; _row++; } for (int c = 0 ; c < 5 ; c++) { errorsSheet.AutoSizeColumn(c); } }