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(); }
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; }
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; }