public override TableDefinition Content(ReportData reportData, Dictionary <string, string> options) { var rowData = new List <string>(); rowData.AddRange(new[] { " ", Labels.DebtRemoved + " (" + reportData.CurrencySymbol + ")", Labels.DebtAdded + " (" + reportData.CurrencySymbol + ")", Labels.Debt + " (" + reportData.CurrencySymbol + ")" }); DataTable dtDates = new DataTable(); dtDates.Columns.Add("Quarter", typeof(int)); dtDates.Columns.Add("Year", typeof(int)); dtDates.Columns.Add("RemovedTechnicalDebt", typeof(double)); dtDates.Columns.Add("AddedTechnicalDebt", typeof(double)); dtDates.Columns.Add("TotalTechnicalDebt", typeof(double)); dtDates.AcceptChanges(); #region Fetch SnapshotsPF if (reportData.Applications != null && reportData.Snapshots != null) { Snapshot[] _allSnapshots = reportData.Snapshots; int generateQuater = 6; DateTime _dateNow = DateTime.Now; int currentYear = _dateNow.Year; int currentQuater = DateUtil.GetQuarter(_dateNow); for (int i = generateQuater; i > 0; i--) { DataRow dr = dtDates.NewRow(); dr["Quarter"] = currentQuater; dr["Year"] = currentYear; dtDates.Rows.InsertAt(dr, 0); currentYear = DateUtil.GetPreviousQuarterYear(currentQuater, currentYear); currentQuater = DateUtil.GetPreviousQuarter(currentQuater); } for (int i = 0; i < dtDates.Rows.Count; i++) { double?_removedTechnicalDebt = 0; double?_addedTechnicalDebt = 0; double?_totalTechnicalDebt = 0; if (_allSnapshots.Length > 0) { foreach (Snapshot snapshot in _allSnapshots.OrderBy(_ => _.Annotation.Date.DateSnapShot)) { if (snapshot.Annotation.Date.DateSnapShot == null) { continue; } DateTime _snapshotDate = Convert.ToDateTime(snapshot.Annotation.Date.DateSnapShot.Value); int intQuarter = Convert.ToInt32(dtDates.Rows[i]["Quarter"]); int intYear = Convert.ToInt32(dtDates.Rows[i]["Year"]); int intSnapshotQuarter = DateUtil.GetQuarter(_snapshotDate); int intSnapshotYear = _snapshotDate.Year; if (intQuarter != intSnapshotQuarter || intYear != intSnapshotYear) { continue; } _removedTechnicalDebt = _removedTechnicalDebt + MeasureUtility.GetRemovedTechDebtMetric(snapshot); _addedTechnicalDebt = _addedTechnicalDebt + MeasureUtility.GetAddedTechDebtMetric(snapshot); _totalTechnicalDebt = _totalTechnicalDebt + MeasureUtility.GetTechnicalDebtMetric(snapshot); } } dtDates.Rows[i]["RemovedTechnicalDebt"] = _removedTechnicalDebt * -1; dtDates.Rows[i]["AddedTechnicalDebt"] = _addedTechnicalDebt; dtDates.Rows[i]["TotalTechnicalDebt"] = _totalTechnicalDebt; } for (int i = 0; i < dtDates.Rows.Count; i++) { string strQuarter = dtDates.Rows[i]["Year"] + " Q" + dtDates.Rows[i]["Quarter"]; rowData.Add(strQuarter); rowData.Add(dtDates.Rows[i]["RemovedTechnicalDebt"].ToString()); rowData.Add(dtDates.Rows[i]["AddedTechnicalDebt"].ToString()); rowData.Add(dtDates.Rows[i]["TotalTechnicalDebt"].ToString()); } } #endregion Fetch SnapshotsPF TableDefinition resultTable = new TableDefinition { HasRowHeaders = true, HasColumnHeaders = false, NbRows = dtDates.Rows.Count + 1, NbColumns = 4, Data = rowData, GraphOptions = null }; return(resultTable); }
protected override TableDefinition Content(ReportData reportData, Dictionary <string, string> options) { int count = 0; var rowData = new List <String>(); rowData.AddRange(new string[] { " ", Labels.DebtRemoved + " (" + reportData.CurrencySymbol + ")", Labels.DebtAdded + " (" + reportData.CurrencySymbol + ")", Labels.Debt + " (" + reportData.CurrencySymbol + ")" }); #region Fetch Snapshots int nbSnapshots = (reportData != null && reportData.Application != null) ? reportData.Application.Snapshots.Count() : 0; if (nbSnapshots > 0) { foreach (Snapshot snapshot in reportData.Application.Snapshots.OrderBy(_ => _.Annotation.Date.DateSnapShot)) { double?prevDoubleSnapshotDate = snapshot.Annotation.Date.DateSnapShot.HasValue ? snapshot.Annotation.Date.DateSnapShot.Value.ToOADate() : 0; double?prevRemovedTechDebtValue = MeasureUtility.GetRemovedTechDebtMetric(snapshot); double?prevAddedTechDebtValue = MeasureUtility.GetAddedTechDebtMetric(snapshot); double?prevTotalTechDebtValue = MeasureUtility.GetTechnicalDebtMetric(snapshot); rowData.AddRange(new string[] { prevDoubleSnapshotDate.GetValueOrDefault().ToString(), prevRemovedTechDebtValue.GetValueOrDefault().ToString(), prevAddedTechDebtValue.GetValueOrDefault().ToString(), prevTotalTechDebtValue.GetValueOrDefault().ToString(), }); } count = nbSnapshots; } #endregion Previous Snapshots #region just 1 snapshot if (reportData.Application != null && reportData.Application.Snapshots != null && nbSnapshots == 1 && reportData.CurrentSnapshot != null) { double?prevDoubleSnapshotDate = reportData.CurrentSnapshot.Annotation.Date.DateSnapShot.HasValue ? reportData.CurrentSnapshot.Annotation.Date.DateSnapShot.Value.ToOADate() : 0; double?prevRemovedTechDebtValue = MeasureUtility.GetRemovedTechDebtMetric(reportData.CurrentSnapshot); double?prevAddedTechDebtValue = MeasureUtility.GetAddedTechDebtMetric(reportData.CurrentSnapshot); double?prevTotalTechDebtValue = MeasureUtility.GetTechnicalDebtMetric(reportData.CurrentSnapshot); rowData.AddRange(new string[] { prevDoubleSnapshotDate.GetValueOrDefault().ToString(), prevRemovedTechDebtValue.GetValueOrDefault().ToString(), prevAddedTechDebtValue.GetValueOrDefault().ToString(), prevTotalTechDebtValue.GetValueOrDefault().ToString(), }); count = count + 1; } #endregion just 1 snapshot TableDefinition resultTable = new TableDefinition { HasRowHeaders = true, HasColumnHeaders = false, NbRows = count + 1, NbColumns = 4, Data = rowData, GraphOptions = null }; return(resultTable); }
protected override TableDefinition Content(ReportData reportData, Dictionary <string, string> options) { var rowData = new List <String>(); rowData.AddRange(new string[] { " ", Labels.DebtRemoved + " (" + reportData.CurrencySymbol + ")", Labels.DebtAdded + " (" + reportData.CurrencySymbol + ")", Labels.Debt + " (" + reportData.CurrencySymbol + ")" }); DataTable dtDates = new DataTable(); dtDates.Columns.Add("Quarter", typeof(int)); dtDates.Columns.Add("Year", typeof(int)); dtDates.Columns.Add("RemovedTechnicalDebt", typeof(double)); dtDates.Columns.Add("AddedTechnicalDebt", typeof(double)); dtDates.Columns.Add("TotalTechnicalDebt", typeof(double)); dtDates.AcceptChanges(); #region Fetch SnapshotsPF if (reportData != null && reportData.Applications != null && reportData.snapshots != null) { DateTime DateNow = DateTime.Now; //DateTime DateNow = Convert.ToDateTime("03 01 2014"); Application[] AllApps = reportData.Applications; Snapshot[] AllSnapshots = reportData.snapshots; int generateQuater = 6; int currentYear = DateNow.Year; int currentQuater = GetQuarter(DateNow); for (int i = generateQuater; i > 0; i--) { DataRow dr = dtDates.NewRow(); dr["Quarter"] = currentQuater; dr["Year"] = currentYear; dtDates.Rows.InsertAt(dr, 0); //dtDates.Rows.Add(currentQuater, currentYear); if (--currentQuater == 0) { currentQuater = 4; currentYear--; } } double?RemovedTechnicalDebt = 0; double?AddedTechnicalDebt = 0; double?TotalTechnicalDebt = 0; for (int i = 0; i < dtDates.Rows.Count; i++) { RemovedTechnicalDebt = 0; AddedTechnicalDebt = 0; TotalTechnicalDebt = 0; if (AllSnapshots.Count() > 0) { foreach (Snapshot snapshot in AllSnapshots.OrderBy(_ => _.Annotation.Date.DateSnapShot)) { DateTime SnapshotDate = Convert.ToDateTime(snapshot.Annotation.Date.DateSnapShot.Value); int intQuarter = Convert.ToInt32(dtDates.Rows[i]["Quarter"]); int intYear = Convert.ToInt32(dtDates.Rows[i]["Year"]); int intSnapshotQuarter = GetQuarter(SnapshotDate); int intSnapshotYear = SnapshotDate.Year; if (intQuarter == intSnapshotQuarter && intYear == intSnapshotYear) { RemovedTechnicalDebt = RemovedTechnicalDebt + MeasureUtility.GetRemovedTechDebtMetric(snapshot); AddedTechnicalDebt = AddedTechnicalDebt + MeasureUtility.GetAddedTechDebtMetric(snapshot); TotalTechnicalDebt = TotalTechnicalDebt + MeasureUtility.GetTechnicalDebtMetric(snapshot); } } } if (RemovedTechnicalDebt > 0) { RemovedTechnicalDebt = RemovedTechnicalDebt * -1; } if (RemovedTechnicalDebt != null) { dtDates.Rows[i]["RemovedTechnicalDebt"] = RemovedTechnicalDebt; } else { dtDates.Rows[i]["RemovedTechnicalDebt"] = 0.0; } if (AddedTechnicalDebt != null) { dtDates.Rows[i]["AddedTechnicalDebt"] = AddedTechnicalDebt; } else { dtDates.Rows[i]["AddedTechnicalDebt"] = 0.0; } if (TotalTechnicalDebt != null) { dtDates.Rows[i]["TotalTechnicalDebt"] = TotalTechnicalDebt; } else { dtDates.Rows[i]["TotalTechnicalDebt"] = 0.0; } } for (int i = 0; i < dtDates.Rows.Count; i++) { string strQuarter = dtDates.Rows[i]["Year"].ToString() + " Q" + dtDates.Rows[i]["Quarter"].ToString(); rowData.AddRange(new string[] { strQuarter, dtDates.Rows[i]["RemovedTechnicalDebt"].ToString(), dtDates.Rows[i]["AddedTechnicalDebt"].ToString(), dtDates.Rows[i]["TotalTechnicalDebt"].ToString(), }); } } #endregion Fetch SnapshotsPF TableDefinition resultTable = new TableDefinition { HasRowHeaders = true, HasColumnHeaders = false, NbRows = dtDates.Rows.Count + 1, NbColumns = 4, Data = rowData, GraphOptions = null }; return(resultTable); }