public C3Window(CCRecordSet ccRecordSet, string recordSetFileName, C3Configuration config) : this() { this.ccRecordSet = ccRecordSet; this.recordSetFileName = recordSetFileName; this.config = config; this.editDateTimeRange = Selectors.timeFilters[Consts.TIMEEXPR_LASTMONTH]; this.summaryDateTimeRange = Selectors.timeFilters[Consts.TIMEEXPR_LASTMONTH]; this.requiredHeaderNames = new HashSet <string>(this.ccRecordSet.RequiredHeaderNames); currentDataTable = ccRecordSet.ToDataTable(); UpdateEditDataGrid(); foreach (var header in this.ccRecordSet.RequiredHeaderNames) { var col = new DataGridTextColumn { Header = header, Binding = new Binding(header) { StringFormat = columnFormats[header] }, IsReadOnly = true }; EditTabDatagrid.Columns.Add(col); } foreach (var header in config.columns) { var col = new DataGridComboBoxColumn { Header = header.columnName, ItemsSource = header.validValues, SelectedValueBinding = new Binding(header.columnName) }; EditTabDatagrid.Columns.Add(col); } EditTimeFilterComboBox.ItemsSource = Selectors.timeFilters.Keys; EditTimeFilterComboBox.SelectedItem = Selectors.timeFilters.Keys.FirstOrDefault(); SummaryTimeFilterComboBox.ItemsSource = Selectors.timeFilters.Keys; SummaryTimeFilterComboBox.SelectedItem = Selectors.timeFilters.Keys.FirstOrDefault(); SummaryAggregateComboBox.ItemsSource = this.ccRecordSet.PredictedHeaderNames; SummaryAggregateComboBox.SelectedItem = this.ccRecordSet.PredictedHeaderNames.FirstOrDefault(); ReportGroupByComboBox.ItemsSource = this.ccRecordSet.PredictedHeaderNames; ReportGroupByComboBox.SelectedIndex = 0; ReportPeriodComboBox.ItemsSource = Selectors.periodSpecifiers.Keys; ReportPeriodComboBox.SelectedItem = Consts.PERIOD_SPECIFIER_MONTH; ReportAggregationComboBox.ItemsSource = Selectors.aggreations.Keys; ReportAggregationComboBox.SelectedItem = Consts.AGGREGATION_SUM; }
public void TestGrouping() { Stream s = TestUtils.RetrieveResource(fullChargeList); CCRecordSet recordSet = CCRecordSet.FromStream(s, config); var periodSpec = Selectors.periodSpecifiers[Consts.PERIOD_SPECIFIER_MONTH]; var aggregation = Selectors.aggreations[Consts.AGGREGATION_AVG]; var predictedColumns = TestUtils.GetMockC3PredictedColumns(); var report = Transforms.GetPeriodSummary(recordSet.ToDataTable(), periodSpec, predictedColumns[0], aggregation); var expectedHeaders = new DateTime[] { DateTime.Parse("1/1/2004 12:00:00 AM"), DateTime.Parse("2/1/2004 12:00:00 AM"), DateTime.Parse("3/1/2004 12:00:00 AM"), DateTime.Parse("4/1/2004 12:00:00 AM") }; var actualHeaders = report.AsEnumerable().Select(row => row["Period start"]).Cast <DateTime>().ToArray(); CollectionAssert.AreEqual(expectedHeaders, actualHeaders); TestUtils.AssertApproximatelyEqual((decimal)report.Rows[0][1], 65.73384615m); TestUtils.AssertApproximatelyEqual((decimal)report.Rows[1][2], 44.94272727m); TestUtils.AssertApproximatelyEqual((decimal)report.Rows[2][3], 32.17625m); TestUtils.AssertApproximatelyEqual((decimal)report.Rows[3][4], 111.4819697m); }