public CategoryAreaDataWriter(IAreasReader areasReader, IGroupDataReader groupDataReader, WorksheetInfo worksheet, ProfileDataWriter profileDataWriter, CategoryAreaType categoryAreaType) : base(areasReader, groupDataReader, worksheet, profileDataWriter) { _categoryAreaTypeId = categoryAreaType.CategoryTypeId; categories = areasReader.GetCategories(_categoryAreaTypeId); subnationalCategoryIdToCategoryAreaMap = categories .ToDictionary<Category, int, IArea>( category => category.Id, category => CategoryArea.New(category) ); }
protected ParentDataWriter(IAreasReader areasReader, IGroupDataReader groupDataReader, WorksheetInfo worksheetInfo, ProfileDataWriter profileDataWriter) { AreasReader = areasReader; GroupDataReader = groupDataReader; Worksheet = worksheetInfo; ProfileDataWriter = profileDataWriter; }
public void TestNextRow() { WorksheetInfo wi = new WorksheetInfo(); Assert.AreEqual(0, wi.NextRow); Assert.AreEqual(1, wi.NextRow); Assert.AreEqual(2, wi.NextRow); }
public static ParentDataWriter New(IAreasReader areasReader, IGroupDataReader groupDataReader, WorksheetInfo worksheetInfo, ProfileDataWriter profileDataWriter, IAreaType parentAreaType) { var categoryAreaType = parentAreaType as CategoryAreaType; return categoryAreaType != null ? (ParentDataWriter)new CategoryAreaDataWriter(areasReader, groupDataReader, worksheetInfo, profileDataWriter, categoryAreaType) : (ParentDataWriter)new SubnationalAreaDataWriter(areasReader, groupDataReader, worksheetInfo, profileDataWriter, parentAreaType); }
public void AddCategorisedData(WorksheetInfo ws, RowLabels rowLabels, IList<CoreDataSet> dataList, Dictionary<int, IArea> categoryIdToAreaMap) { IRange cells = ws.Worksheet.Cells; foreach (CoreDataSet data in dataList) { IArea area = categoryIdToAreaMap[data.CategoryId]; AddDataRow(ws, rowLabels, area, data, cells, null, null); } }
public void TestIsWorksheetEmpty() { WorksheetInfo wi = new WorksheetInfo(); int row = wi.NextRow; Assert.IsTrue(wi.IsWorksheetEmpty); row = wi.NextRow; Assert.IsFalse(wi.IsWorksheetEmpty); row = wi.NextRow; Assert.IsFalse(wi.IsWorksheetEmpty); }
public void WriteChildTrendMarkers(WorksheetInfo worksheetInfo, Dictionary<string, TrendMarkerResult> trendMarkerResults, IList<string> childAreaCodes) { int rowOffset = childAreaCodes.Count; foreach (var childAreaCode in childAreaCodes.OrderBy(x => x)) { var trendLabel = GetLabel(trendMarkerResults[childAreaCode]); _profileDataWriter.AddTrendMarker(trendLabel, rowOffset, worksheetInfo); rowOffset--; } }
public void AddData(WorksheetInfo ws, RowLabels rowLabels, IList<CoreDataSet> dataList, Dictionary<string, IArea> areaCodeToAreaMap, Dictionary<string, Area> areaCodeToParentMap) { IRange cells = ws.Worksheet.Cells; foreach (CoreDataSet data in dataList) { IArea area = areaCodeToAreaMap[data.AreaCode]; Area parentArea; string parentAreaName = "", parentAreaCode = ""; if (areaCodeToParentMap.TryGetValue(data.AreaCode, out parentArea)) { parentAreaCode = areaCodeToParentMap[data.AreaCode].Code; parentAreaName = areaCodeToParentMap[data.AreaCode].Name; } AddDataRow(ws, rowLabels, area, data, cells, parentAreaCode, parentAreaName); } }
public void WriteNationalTrendMarkers(WorksheetInfo worksheetInfo, Dictionary<string, TrendMarkerResult> trendMarkerResults, string areaCode) { }
private static void AddDataRow(WorksheetInfo ws, RowLabels rowLabels, IArea area, CoreDataSet coreData, IRange cells, string parentAreaCode, string parentAreaName) { try { int rowIndex = ws.NextRow; int column = 0; // Indicator / time period cells[rowIndex, column++].Value = rowLabels.IndicatorName; cells[rowIndex, column++].Value = rowLabels.TimePeriod; // Parent area cells[rowIndex, column++].Value = parentAreaCode ?? string.Empty; cells[rowIndex, column++].Value = parentAreaName ?? string.Empty; // Area code var category = area as CategoryArea; if (category != null) { AddValue(cells[rowIndex, column++], Convert.ToDouble(category.CategoryId)); } else { cells[rowIndex, column++].Value = area.Code; } // Area name cells[rowIndex, column++].Value = area.Name; // Value / CIs AddValue(cells[rowIndex, column++], coreData.Value); AddValue(cells[rowIndex, column++], coreData.LowerCI); AddValue(cells[rowIndex, column++], coreData.UpperCI); // Count if (coreData.IsCountValid) { AddValue(cells[rowIndex, column], coreData.Count.Value); } column++; // Denominator AddValue(cells[rowIndex, column++], coreData.Denominator); // Sex / age cells[rowIndex, column++].Value = rowLabels.Sex; cells[rowIndex, column++].Value = rowLabels.Age; // Value note if (coreData.ValueNoteId > 0) { cells[rowIndex, column].Value = rowLabels.ValueNoteLookUp[coreData.ValueNoteId]; } } catch (Exception ex) { ExceptionLog.LogException(ex, ""); } }
public void WriteNationalTrendMarkers(WorksheetInfo worksheetInfo, Dictionary<string, TrendMarkerResult> trendMarkerResults, string areaCode) { var label = GetLabel(trendMarkerResults[areaCode]); _profileDataWriter.AddTrendMarker(label, RowOffsetForOneArea, worksheetInfo); }
public void AddTrendMarker(TrendMarkerLabel trendMarkerLabel, int rowOffset, WorksheetInfo ws) { int currentRowIndex = ws.CurrentRow; int column = 0; IRange cells = ws.Worksheet.Cells; int rowIndex = currentRowIndex - rowOffset; if (rowIndex > 1) { cells[rowIndex, ColumnIndexes.RecentTrend].Value = trendMarkerLabel.Text; } }
private static void AddDataHeader(WorksheetInfo ws) { int rowIndex = ws.NextRow; IRange row = ws.Worksheet.Cells[rowIndex, 0, rowIndex, 13]; int column = 0; row[rowIndex, column++].Value = "Indicator"; SetColumnAsText(row[rowIndex, column++], "Time Period"); SetColumnAsText(row[rowIndex, column++], "Parent Code"); SetColumnAsText(row[rowIndex, column++], "Parent Name"); SetColumnAsText(row[rowIndex, column++], "Area Code"); row[rowIndex, column++].Value = "Area Name"; row[rowIndex, column++].Value = "Value"; row[rowIndex, column++].Value = "Lower CI"; row[rowIndex, column++].Value = "Upper CI"; row[rowIndex, column++].Value = "Count"; row[rowIndex, column++].Value = "Denominator"; SetColumnAsText(row[rowIndex, column++], "Sex"); SetColumnAsText(row[rowIndex, column++], "Age"); SetColumnAsText(row[rowIndex, column++], "Note"); SetColumnAsText(row[rowIndex, column], "Recent Trend"); foreach (string range in new[] { "$G:$G", "$H:$I", "$I:$I", "$J:$J", "$K:$K" }) { ws.Worksheet.Cells[range].NumberFormat = "0.00"; } row.Font.Bold = true; SetColumnWidths(row, new[] { 45, 13, 10, 20, 10, 20, 13, 13, 13, 13, 13, 15, 15, 35, 30 }); }
public void WriteMultipleSubnationalTrendMarkers(WorksheetInfo worksheetInfo, Grouping grouping, IndicatorMetadata indicatorMetadata, CoreDataCollector coreDataCollector, IList<CategoryIdAndAreaCode> categoryIdAndAreaCodes) { int rowOffset = categoryIdAndAreaCodes.Count; foreach (var area in categoryIdAndAreaCodes) { var dataList = coreDataCollector.GetDataListForArea(area); var result = _trendMarkersProvider.GetTrendMarkerResult(indicatorMetadata, grouping, dataList); _profileDataWriter.AddTrendMarker(GetLabel(result), rowOffset, worksheetInfo); rowOffset--; } }
public void WriteSingleSubnationalTrendMarker(WorksheetInfo worksheetInfo, Grouping grouping, IndicatorMetadata indicatorMetadata, CoreDataCollector coreDataCollector) { List<CoreDataSet> dataList = coreDataCollector.GetDataList(); var result = _trendMarkersProvider.GetTrendMarkerResult(indicatorMetadata, grouping, dataList); _profileDataWriter.AddTrendMarker(GetLabel(result), RowOffsetForOneArea, worksheetInfo); }
public void WriteChildTrendMarkers(WorksheetInfo worksheetInfo, Dictionary<string, TrendMarkerResult> trendMarkerResults, IList<string> childAreaCodes) { }
public void AddData(WorksheetInfo ws, RowLabels rowLabels, CoreDataSet coreData, IArea area) { if (coreData != null) { IRange cells = ws.Worksheet.Cells; AddDataRow(ws, rowLabels, area, coreData, cells, null, null); } }
public void WriteMultipleSubnationalTrendMarkers(WorksheetInfo worksheetInfo, Grouping grouping, IndicatorMetadata indicatorMetadata, CoreDataCollector coreDataCollector, IList<CategoryIdAndAreaCode> categoryIdAndAreaCodes) { }
public void AddSheet(string sheetLabel) { var ws = new WorksheetInfo { Worksheet = workbook.Worksheets.Add() }; ws.Worksheet.Name = sheetLabel; _wsDictionary.Add(sheetLabel, ws); AddDataHeader(ws); }
public void WriteSingleSubnationalTrendMarker(WorksheetInfo worksheetInfo, Grouping grouping, IndicatorMetadata indicatorMetadata, CoreDataCollector coreDataCollector) { }