private void PopulateData(LeaveAnalysisResults AnalysisResults)
        {
            DataGrid.RowDefinitions.Clear();
            DataGrid.ColumnDefinitions.Clear();
            DataGrid.Children.Clear();

            DataGrid.RowDefinitions.Add(new RowDefinition());

            for (var c = 0; c < AnalysisResults.ColumnNames.Count; ++c)
            {
                DataGrid.ColumnDefinitions.Add(new ColumnDefinition());
                var block = AddValue(AnalysisResults.ColumnNames[c], 0, c);
                block.LayoutTransform = new RotateTransform(90);
            }

            foreach (var line in AnalysisResults.Rows)
            {
                DataGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength() });
                AddValue(line.Name, DataGrid.RowDefinitions.Count - 1, 0);

                foreach (var column in line.Columns)
                {
                    var columnIndex = AnalysisResults.ColumnNames.IndexOf(column.Key);
                    if (columnIndex < 0) continue;
                    AddValue(column.Value, DataGrid.RowDefinitions.Count - 1,
                        columnIndex);
                }
            }

            UpdateLayout();
        }
Example #2
0
        public override LeaveAnalysisResults Analyze(LeaveChart Data)
        {
            var leaveTypes = LeaveTypes.Split(',').Select(s => s.Trim());

            var result = new LeaveAnalysisResults();
            result.ColumnNames.Add("Date");
            result.ColumnNames.Add("Leave Type");

            foreach (var leaveEntry in Data.EnumerateLeaveWithDates(StartDate, EndDate).Where(p => p.LeaveEntry.Carrier == Carrier && leaveTypes.Contains(p.LeaveEntry.LeaveType)))
                result.Rows.Add(new LeaveAnalysisRow
                {
                    Name = leaveEntry.Date.ToShortDateString(),
                    Columns = MakeDictionary("Leave Type", leaveEntry.LeaveEntry.LeaveType)
                });

            return result;
        }
        public override LeaveAnalysisResults Analyze(LeaveChart Data)
        {
            var dayCount = new Dictionary<String, int>();

            foreach (var leaveEntry in Data.EnumerateLeave(StartDate, EndDate))
                if (dayCount.ContainsKey(leaveEntry.Substitute)) dayCount[leaveEntry.Substitute] += 1;
                else dayCount.Add(leaveEntry.Substitute, 1);

            var result = new LeaveAnalysisResults();
            result.ColumnNames.Add("Carrier");
            result.ColumnNames.Add("Days Worked");

            foreach (var sub in dayCount)
            {
                result.Rows.Add(new LeaveAnalysisRow { Name = sub.Key });
                result.Rows[result.Rows.Count - 1].Columns.Add("Days Worked", sub.Value.ToString());
            }

            result.SortRowsAlphabetically();
            return result;
        }
Example #4
0
        public override LeaveAnalysisResults Analyze(LeaveChart Chart)
        {
            var usageTable = new Dictionary<String, Dictionary<String, int>>();

            foreach (var leaveEntry in Chart.EnumerateLeave(StartDate, EndDate).Where(l => !Constants.PropogatableLeaveTypes.Contains(l.LeaveType)))
            {
                Dictionary<String, int> carrierEntry = null;
                if (!usageTable.TryGetValue(leaveEntry.Carrier, out carrierEntry))
                {
                    carrierEntry = new Dictionary<string, int>();
                    usageTable.Add(leaveEntry.Carrier, carrierEntry);
                }

                if (carrierEntry.ContainsKey(leaveEntry.LeaveType))
                    carrierEntry[leaveEntry.LeaveType] += 1;
                else
                    carrierEntry.Add(leaveEntry.LeaveType, 1);
            }

            var result = new LeaveAnalysisResults();
            result.ColumnNames.Add("Carrier");

            foreach (var carrierEntry in usageTable)
            {
                var row = new LeaveAnalysisRow { Name = carrierEntry.Key };
                foreach (var leaveType in carrierEntry.Value)
                {
                    if (!result.ColumnNames.Contains(leaveType.Key))
                        result.ColumnNames.Add(leaveType.Key);
                    row.Columns.Add(leaveType.Key, leaveType.Value.ToString());
                }
                result.Rows.Add(row);
            }

            return result;
        }