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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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}");
        }
Exemple #6
0
        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);
        }
Exemple #8
0
        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);
        }