コード例 #1
0
        private void GenerateEmployeeData()
        {
            m_EmployeeCategoryAxis.Labels.Clear();
            m_EmployeeChartModel.Series.Clear();

            var employees = FilteredPositions.Where(p => p.ResponsibleSubject != null)
                            .Select(p => p.ResponsibleSubject.Name)
                            .Distinct()
                            .ToList();

            var allTags = FilteredPositions.Select(cfp => cfp.Tag)
                          .Distinct();

            foreach (var tag in allTags)
            {
                var columnSeries = new ColumnSeries
                {
                    StrokeThickness = 0,
                    Title           = tag,
                    IsStacked       = true,
                    FillColor       = m_TagColorProvider.GetColorForTag(tag)
                                      .OxyColor
                };
                m_EmployeeChartModel.Series.Add(columnSeries);
            }

            foreach (var employee in employees)
            {
                m_EmployeeCategoryAxis.Labels.Add(employee);

                var positionsPerEmployee = m_Positions.Where(cfp => cfp.ResponsibleSubject != null && cfp.ResponsibleSubject.Name == employee);

                foreach (var positionPerEmployee in positionsPerEmployee)
                {
                    var columnSeries = (ColumnSeries)m_EmployeeChartModel.Series.Single(s => s.Title == positionPerEmployee.Tag);
                    columnSeries.Items.Add(new ColumnItem(positionPerEmployee.CalculatedValue / 1000, employees.IndexOf(employee)));
                }
            }

            m_EmployeeChartModel.ResetAllAxes();
        }
コード例 #2
0
        private void GenerateChartData()
        {
            m_ChartModel.Series.Clear();
            m_CategoryAxis.Labels.Clear();

            var selectedCarbonFootprints = Items.Where(cfvm => cfvm.IsSelected)
                                           .Select(cfvm => cfvm.Model)
                                           .ToArray();

            var allTags = selectedCarbonFootprints.SelectMany(cf => cf.Positions)
                          .Select(cfp => cfp.Tag)
                          .Distinct();

            foreach (var columnSeries in allTags.Select(tag => new ColumnSeries
            {
                StrokeThickness = 0,
                Title = tag,
                IsStacked = false,
                FillColor = m_TagProvider.GetColorForTag(tag)
                            .OxyColor
            }))
            {
                m_ChartModel.Series.Add(columnSeries);
            }

            for (var i = 0; i < selectedCarbonFootprints.Length; i++)
            {
                var carbonFootprint = selectedCarbonFootprints[i];
                m_CategoryAxis.Labels.Add(carbonFootprint.Name);

                var sumByTag = from cfp in carbonFootprint.Positions
                               group cfp by cfp.Tag
                               into tagged
                               select new
                {
                    ColumnSeries = (ColumnSeries)m_ChartModel.Series.Single(s => s.Title == tagged.Key),
                    CulumnItem   = new ColumnItem(tagged.Sum(t => t.Calculation) / 1000, i)
                };

                foreach (var sum in sumByTag)
                {
                    sum.ColumnSeries.Items.Add(sum.CulumnItem);
                }
            }
            m_ChartModel.InvalidatePlot(true);
        }