public override TableDefinition Content(ReportData reportData, Dictionary <string, string> options) { #region METHODS if (reportData?.CurrentSnapshot == null) { return(null); } double?codeLineNumber = MeasureUtility.GetCodeLineNumber(reportData.CurrentSnapshot); double?fileNumber = MeasureUtility.GetFileNumber(reportData.CurrentSnapshot); double?classNumber = MeasureUtility.GetClassNumber(reportData.CurrentSnapshot); double?sqlArtifactNumber = MeasureUtility.GetSqlArtifactNumber(reportData.CurrentSnapshot); double?tableNumber = MeasureUtility.GetTableNumber(reportData.CurrentSnapshot); const string noData = Constants.No_Value; const string metricFormat = "N0"; var rowData = new List <string> { Labels.Name, Labels.Value , Labels.kLoC, (codeLineNumber / 1000)?.ToString(metricFormat) ?? noData , " " + Labels.Files, fileNumber?.ToString(metricFormat) ?? noData , " " + Labels.Classes, classNumber?.ToString(metricFormat) ?? noData , Labels.ArtifactsSQL, sqlArtifactNumber?.ToString(metricFormat) ?? noData , " " + Labels.Tables, tableNumber?.ToString(metricFormat) ?? noData }; var resultTable = new TableDefinition { HasRowHeaders = false, HasColumnHeaders = true, NbRows = 6, NbColumns = 2, Data = rowData }; return(resultTable); }
protected override TableDefinition Content(ReportData reportData, Dictionary <string, string> options) { #region METHODS TableDefinition resultTable = null; if (null != reportData && null != reportData.CurrentSnapshot) { double?codeLineNumber = MeasureUtility.GetCodeLineNumber(reportData.CurrentSnapshot); double?fileNumber = MeasureUtility.GetFileNumber(reportData.CurrentSnapshot); double?classNumber = MeasureUtility.GetClassNumber(reportData.CurrentSnapshot); double?sqlArtifactNumber = MeasureUtility.GetSqlArtifactNumber(reportData.CurrentSnapshot); double?tableNumber = MeasureUtility.GetTableNumber(reportData.CurrentSnapshot); const string noData = Constants.No_Data; const string metricFormat = "N0"; var rowData = new List <string>() { Labels.Name, Labels.Value , Labels.kLoC, (codeLineNumber.HasValue ? (codeLineNumber.Value / 1000).ToString(metricFormat) : noData) , " " + Labels.Files, (fileNumber.HasValue ? (fileNumber.Value).ToString(metricFormat) : noData) , " " + Labels.Classes, (classNumber.HasValue ? (classNumber.Value).ToString(metricFormat) : noData) , Labels.ArtifactsSQL, (sqlArtifactNumber.HasValue ? (sqlArtifactNumber.Value).ToString(metricFormat) : noData) , " " + Labels.Tables, (tableNumber.HasValue ? (tableNumber.Value).ToString(metricFormat) : noData) }; resultTable = new TableDefinition { HasRowHeaders = false, HasColumnHeaders = true, NbRows = 6, NbColumns = 2, Data = rowData }; } return(resultTable); }
public override string Content(ReportData reportData, Dictionary <string, string> options) { if (reportData?.CurrentSnapshot == null) { return(Domain.Constants.No_Value); } double?codeLineNumber = MeasureUtility.GetCodeLineNumber(reportData.CurrentSnapshot); return(codeLineNumber.HasValue ? GetApplicationQualification(reportData, codeLineNumber.Value) : Domain.Constants.No_Value); }
protected override string Content(ReportData reportData, Dictionary <string, string> options) { if (null != reportData && null != reportData.CurrentSnapshot) { double?codeLineNumber = MeasureUtility.GetCodeLineNumber(reportData.CurrentSnapshot); if (codeLineNumber.HasValue) { return(GetApplicationQualification(reportData, codeLineNumber.Value)); } } return(CastReporting.Domain.Constants.No_Value); }
public override string Content(ReportData reportData, Dictionary <string, string> options) { if (reportData?.Applications == null) { return(Constants.No_Value); } Application[] _allApps = reportData.Applications; double? _allTechDebt = 0; double? _allLoc = 0; foreach (Application _app in _allApps) { try { Snapshot _snapshot = _app.Snapshots.OrderByDescending(_ => _.Annotation.Date.DateSnapShot).First(); if (_snapshot == null) { continue; } double?result = MeasureUtility.GetTechnicalDebtMetric(_snapshot); if (result != null) { _allTechDebt = _allTechDebt + result; } double?_locSnap = MeasureUtility.GetCodeLineNumber(_snapshot); if (_locSnap != null) { _allLoc = _allLoc + _locSnap; } } catch (Exception ex) { LogHelper.Instance.LogInfo(ex.Message); LogHelper.Instance.LogInfo(Labels.NoSnapshot); } } if (!(_allTechDebt > 0) || !(_allLoc > 0)) { return(Labels.NoData); } double?finalValue = _allTechDebt / _allLoc; return($"{finalValue.Value:N0} {reportData.CurrencySymbol}"); }
public override TableDefinition Content(ReportData reportData, Dictionary <string, string> options) { double minValy = short.MaxValue; double maxValy = 0; double stepV; int count = 0; bool hasVerticalZoom = options.ContainsKey("ZOOM"); if (!options.ContainsKey("ZOOM") || !double.TryParse(options["ZOOM"], out stepV)) { stepV = 1; } var rowData = new List <string>(); rowData.AddRange(new[] { " ", Labels.Prog, Labels.Arch, Labels.Doc, Labels.LoC }); #region Previous Snapshots var nbSnapshots = reportData?.Application.Snapshots?.Count() ?? 0; if (nbSnapshots > 0) { var _snapshots = reportData?.Application?.Snapshots?.OrderBy(_ => _.Annotation.Date.DateSnapShot); if (_snapshots != null) { foreach (Snapshot snapshot in _snapshots) { BusinessCriteriaDTO bcGrade = BusinessCriteriaUtility.GetBusinessCriteriaGradesSnapshot(snapshot, true); double?locValue = MeasureUtility.GetCodeLineNumber(snapshot); string prevSnapshotDate = snapshot.Annotation.Date.DateSnapShot?.ToOADate().ToString(CultureInfo.CurrentCulture) ?? string.Empty; rowData.Add(prevSnapshotDate); rowData.Add(bcGrade.ProgrammingPractices.GetValueOrDefault().ToString(CultureInfo.CurrentCulture)); rowData.Add(bcGrade.ArchitecturalDesign.GetValueOrDefault().ToString(CultureInfo.CurrentCulture)); rowData.Add(bcGrade.Documentation.GetValueOrDefault().ToString(CultureInfo.CurrentCulture)); rowData.Add(locValue.GetValueOrDefault().ToString(CultureInfo.CurrentCulture)); List <double> values = new List <double> { bcGrade.ProgrammingPractices.GetValueOrDefault(), bcGrade.ArchitecturalDesign.GetValueOrDefault(), bcGrade.Documentation.GetValueOrDefault() }; minValy = Math.Min(minValy, values.Min()); maxValy = Math.Max(maxValy, values.Max()); } } count = nbSnapshots; } #endregion Previous Snapshots #region just 1 snapshot if (nbSnapshots == 1) { BusinessCriteriaDTO bcGrade = BusinessCriteriaUtility.GetBusinessCriteriaGradesSnapshot(reportData?.CurrentSnapshot, true); double?locValue = MeasureUtility.GetCodeLineNumber(reportData?.CurrentSnapshot); string prevSnapshotDate = reportData?.CurrentSnapshot.Annotation.Date.DateSnapShot?.ToOADate().ToString(CultureInfo.CurrentCulture) ?? string.Empty; rowData.AddRange (new[] { prevSnapshotDate , bcGrade.ProgrammingPractices.GetValueOrDefault().ToString(CultureInfo.CurrentCulture) , bcGrade.ArchitecturalDesign.GetValueOrDefault().ToString(CultureInfo.CurrentCulture) , bcGrade.Documentation.GetValueOrDefault().ToString(CultureInfo.CurrentCulture) , locValue.GetValueOrDefault().ToString(CultureInfo.CurrentCulture) }); List <double> values = new List <double>() { bcGrade.ProgrammingPractices.GetValueOrDefault(), bcGrade.ArchitecturalDesign.GetValueOrDefault(), bcGrade.Documentation.GetValueOrDefault() }; minValy = Math.Min(minValy, values.Min()); maxValy = Math.Max(maxValy, values.Max()); count = count + 1; } #endregion just 1 snapshot #region Graphic Options GraphOptions graphOptions = null; if (hasVerticalZoom) { graphOptions = new GraphOptions() { AxisConfiguration = new AxisDefinition() }; graphOptions.AxisConfiguration.VerticalAxisMinimal = MathUtility.GetVerticalMinValue(minValy, stepV); graphOptions.AxisConfiguration.VerticalAxisMaximal = MathUtility.GetVerticalMaxValue(maxValy, stepV); } #endregion Graphic Options TableDefinition resultTable = new TableDefinition { HasRowHeaders = true, HasColumnHeaders = false, NbRows = count + 1, NbColumns = 5, Data = rowData, GraphOptions = graphOptions }; return(resultTable); }
protected override TableDefinition Content(ReportData reportData, Dictionary <string, string> options) { double minVVal = Int16.MaxValue; double maxVVal = 0; double stepV = 0; int count = 0; bool hasVerticalZoom = options.ContainsKey("ZOOM"); if (!options.ContainsKey("ZOOM") || !Double.TryParse(options["ZOOM"], out stepV)) { stepV = 1; } var rowData = new List <String>(); rowData.AddRange(new string[] { " ", Labels.Trans, Labels.Chang, Labels.Robu, Labels.Efcy, Labels.Secu, Labels.LoC }); #region Fetch Snapshots int nbSnapshots = (reportData != null && reportData.Application.Snapshots != null) ? reportData.Application.Snapshots.Count() : 0; if (nbSnapshots > 0) { foreach (Snapshot snapshot in reportData.Application.Snapshots.OrderBy(_ => _.Annotation.Date)) { BusinessCriteriaDTO bcGrade = BusinessCriteriaUtility.GetBusinessCriteriaGradesSnapshot(snapshot, true); double?locValue = MeasureUtility.GetCodeLineNumber(snapshot); string snapshotDate = snapshot.Annotation.Date.DateSnapShot.HasValue ? snapshot.Annotation.Date.DateSnapShot.Value.ToOADate().ToString() : string.Empty; rowData.AddRange(new string[] { snapshotDate, bcGrade.Transferability.GetValueOrDefault().ToString(), bcGrade.Changeability.GetValueOrDefault().ToString(), bcGrade.Robustness.GetValueOrDefault().ToString(), bcGrade.Performance.GetValueOrDefault().ToString(), bcGrade.Security.GetValueOrDefault().ToString(), locValue.GetValueOrDefault().ToString(), }); List <double> values = new List <double>() { bcGrade.Changeability.GetValueOrDefault(), bcGrade.Performance.GetValueOrDefault(), bcGrade.Robustness.GetValueOrDefault(), bcGrade.Security.GetValueOrDefault(), bcGrade.TQI.GetValueOrDefault(), bcGrade.Transferability.GetValueOrDefault() }; minVVal = Math.Min(minVVal, values.Min()); maxVVal = Math.Max(maxVVal, values.Max()); } count = nbSnapshots; } #endregion #region just 1 snapshot if (nbSnapshots == 1) { BusinessCriteriaDTO bcGrade = new BusinessCriteriaDTO(); bcGrade = BusinessCriteriaUtility.GetBusinessCriteriaGradesSnapshot(reportData.CurrentSnapshot, true); double?locValue = MeasureUtility.GetCodeLineNumber(reportData.CurrentSnapshot); string snapshotDate = reportData.CurrentSnapshot.Annotation.Date.DateSnapShot.HasValue ? reportData.CurrentSnapshot.Annotation.Date.DateSnapShot.Value.ToOADate().ToString() : string.Empty; rowData.AddRange(new string[] { snapshotDate, bcGrade.Transferability.GetValueOrDefault().ToString(), bcGrade.Changeability.GetValueOrDefault().ToString(), bcGrade.Robustness.GetValueOrDefault().ToString(), bcGrade.Performance.GetValueOrDefault().ToString(), bcGrade.Security.GetValueOrDefault().ToString(), locValue.GetValueOrDefault().ToString(), }); List <double> values = new List <double>() { bcGrade.Changeability.GetValueOrDefault(), bcGrade.Performance.GetValueOrDefault(), bcGrade.Robustness.GetValueOrDefault(), bcGrade.Security.GetValueOrDefault(), bcGrade.TQI.GetValueOrDefault(), bcGrade.Transferability.GetValueOrDefault() }; minVVal = Math.Min(minVVal, values.Min()); maxVVal = Math.Max(maxVVal, values.Max()); count = count + 1; } #endregion just 1 snapshot #region Graphic Options GraphOptions graphOptions = null; if (hasVerticalZoom) { graphOptions = new GraphOptions() { AxisConfiguration = new AxisDefinition() }; graphOptions.AxisConfiguration.VerticalAxisMinimal = MathUtility.GetVerticalMinValue(minVVal, stepV); graphOptions.AxisConfiguration.VerticalAxisMaximal = MathUtility.GetVerticalMaxValue(maxVVal, stepV); } #endregion Graphic Options TableDefinition resultTable = new TableDefinition { HasRowHeaders = true, HasColumnHeaders = false, NbRows = count + 1, NbColumns = 7, Data = rowData, GraphOptions = graphOptions }; return(resultTable); }
public override TableDefinition Content(ReportData reportData, Dictionary <string, string> options) { bool hasPrevious = reportData.PreviousSnapshot != null; if (reportData?.CurrentSnapshot == null) { return(null); } #region CastComputing double?codeLineNumber = MeasureUtility.GetCodeLineNumber(reportData.CurrentSnapshot); double?fileNumber = MeasureUtility.GetFileNumber(reportData.CurrentSnapshot); double?classNumber = MeasureUtility.GetClassNumber(reportData.CurrentSnapshot); double?sqlArtifactNumber = MeasureUtility.GetSqlArtifactNumber(reportData.CurrentSnapshot); double?tableNumber = MeasureUtility.GetTableNumber(reportData.CurrentSnapshot); double?codeLineNumberPrev = MeasureUtility.GetCodeLineNumber(reportData.PreviousSnapshot); double?fileNumberPrev = MeasureUtility.GetFileNumber(reportData.PreviousSnapshot); double?classNumberPrev = MeasureUtility.GetClassNumber(reportData.PreviousSnapshot); double?sqlArtifactNumberPrev = MeasureUtility.GetSqlArtifactNumber(reportData.PreviousSnapshot); double?tableNumberPrev = MeasureUtility.GetTableNumber(reportData.PreviousSnapshot); double?codeLineNumberEvol = MathUtility.GetEvolution(codeLineNumber, codeLineNumberPrev); double?fileNumberEvol = MathUtility.GetEvolution(fileNumber, fileNumberPrev); double?classNumberEvol = MathUtility.GetEvolution(classNumber, classNumberPrev); double?sqlArtifactNumberEvol = MathUtility.GetEvolution(sqlArtifactNumber, sqlArtifactNumberPrev); double?tableNumberEvol = MathUtility.GetEvolution(tableNumber, tableNumberPrev); double?codeLineNumberPercent = MathUtility.GetPercent(codeLineNumberEvol, codeLineNumberPrev); double?fileNumberPercent = MathUtility.GetPercent(fileNumberEvol, fileNumberPrev); double?classNumberPercent = MathUtility.GetPercent(classNumberEvol, classNumberPrev); double?sqlArtifactNumberPercent = MathUtility.GetPercent(sqlArtifactNumberEvol, sqlArtifactNumberPrev); double?tableNumberPercent = MathUtility.GetPercent(tableNumberEvol, tableNumberPrev); #endregion CastComputing const string noData = Constants.No_Value; const string metricFormat = "N0"; var rowData = new List <string>() { Labels.Name, Labels.Current, Labels.Previous, Labels.Evolution, Labels.EvolutionPercent , Labels.LoC , codeLineNumber?.ToString(metricFormat) ?? noData , codeLineNumberPrev?.ToString(metricFormat) ?? noData , hasPrevious? FormatEvolution((int)codeLineNumberEvol.Value) : noData , (codeLineNumberPercent.HasValue)? FormatPercent(codeLineNumberPercent.Value): noData , " " + Labels.Files , fileNumber?.ToString(metricFormat) ?? noData , fileNumberPrev?.ToString(metricFormat) ?? noData , hasPrevious? FormatEvolution((int)fileNumberEvol.Value) : noData , (fileNumberPercent.HasValue)? FormatPercent(fileNumberPercent.Value): noData , " " + Labels.Classes , classNumber?.ToString(metricFormat) ?? noData , classNumberPrev?.ToString(metricFormat) ?? noData , hasPrevious? FormatEvolution((int)classNumberEvol.Value) : noData , (classNumberPercent.HasValue)? FormatPercent(classNumberPercent.Value): noData , Labels.ArtifactsSQL , sqlArtifactNumber?.ToString(metricFormat) ?? noData , sqlArtifactNumberPrev?.ToString(metricFormat) ?? noData , hasPrevious? FormatEvolution((int)sqlArtifactNumberEvol.Value) : noData , (sqlArtifactNumberPercent.HasValue)? FormatPercent(sqlArtifactNumberPercent.Value): noData , " " + Labels.Tables , tableNumber?.ToString(metricFormat) ?? noData , tableNumberPrev?.ToString(metricFormat) ?? noData , hasPrevious? FormatEvolution((int)tableNumberEvol.Value) : noData , (tableNumberPercent.HasValue)? FormatPercent(tableNumberPercent.Value): noData }; var resultTable = new TableDefinition { HasRowHeaders = false, HasColumnHeaders = true, NbRows = 6, NbColumns = 5, Data = rowData }; return(resultTable); }