< Summary - pva.SuperV

Information
Class: pva.SuperV.Model.HistoryRetrieval.HistoryRowMapper
Assembly: pva.SuperV.Model
File(s): /home/runner/work/pva.SuperV/pva.SuperV/pva.SuperV.Model/HistoryRetrieval/HistoryRowMapper.cs
Tag: dotnet-ubuntu_18869653307
Line coverage
82%
Covered lines: 58
Uncovered lines: 12
Coverable lines: 70
Total lines: 93
Line coverage: 82.8%
Branch coverage
65%
Covered branches: 34
Total branches: 52
Branch coverage: 65.3%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ToDto(...)100%11100%
ToDto(...)100%11100%
ToRawDto(...)100%11100%
ToRawDto(...)100%11100%
BuildRowValues(...)65.38%945275%

File(s)

/home/runner/work/pva.SuperV/pva.SuperV/pva.SuperV.Model/HistoryRetrieval/HistoryRowMapper.cs

#LineLine coverage
 1using pva.SuperV.Engine;
 2using pva.SuperV.Engine.Exceptions;
 3using pva.SuperV.Engine.HistoryRetrieval;
 4using pva.SuperV.Model.Instances;
 5
 6namespace pva.SuperV.Model.HistoryRetrieval
 7{
 8    public static class HistoryRowMapper
 9    {
 10        public static List<HistoryRowModel> ToDto(List<HistoryRow> rows, List<IFieldDefinition> fields)
 311        {
 312            return [.. rows.Select(row
 713                => new HistoryRowModel(row.Ts.ToUniversalTime(), row.Quality, BuildRowValues(row, fields, false)
 714                    ))];
 315        }
 16
 17        public static List<HistoryStatisticsRowModel> ToDto(List<HistoryStatisticRow> rows, List<IFieldDefinition> field
 218        {
 219            return [.. rows.Select(row
 420                => new HistoryStatisticsRowModel(row.Ts.ToUniversalTime(), row.StartTime, row.EndTime, row.Duration, row
 421                    ))];
 222        }
 23
 24        public static List<HistoryRawRowModel> ToRawDto(List<HistoryRow> rows)
 325        {
 326            return [.. rows.Select(row
 727                => new HistoryRawRowModel(row.Ts.ToUniversalTime(), row.Quality,
 3728                       [.. row.Values.Select(value => value)]
 729                    ))];
 330        }
 31
 32        public static List<HistoryStatisticsRawRowModel> ToRawDto(List<HistoryStatisticRow> rows)
 233        {
 234            return [.. rows.Select(row
 435                => new HistoryStatisticsRawRowModel(row.Ts.ToUniversalTime(), row.StartTime, row.EndTime, row.Duration, 
 436                       [.. row.Values.Select(value => value)]
 437                    ))];
 238        }
 39
 40        private static List<FieldValueModel> BuildRowValues(HistoryRow row, List<IFieldDefinition> fields, bool useRowVa
 641        {
 642            List<FieldValueModel> rowValues = [];
 10043            for (int index = 0; index < fields.Count; index++)
 4444            {
 4445                object? rowValue = row.Values[index];
 4446                IFieldDefinition field = fields[index];
 4447                if (useRowValuesDatatype)
 748                {
 749                    rowValues.Add(
 750                        rowValue switch
 751                        {
 052                            bool typedRowValue => new BoolFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(fi
 053                            DateTime typedRowValue => new DateTimeFieldValueModel(typedRowValue, FieldValueMapper.Format
 554                            double typedRowValue => new DoubleFieldValueModel(typedRowValue, FieldValueMapper.FormatValu
 055                            float typedRowValue => new FloatFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(
 156                            int typedRowValue => new IntFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(fiel
 157                            long typedRowValue => new LongFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(fi
 058                            short typedRowValue => new ShortFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(
 059                            string typedRowValue => new StringFieldValueModel(typedRowValue, row.Quality, row.Ts),
 060                            TimeSpan typedRowValue => new TimeSpanFieldValueModel(typedRowValue, FieldValueMapper.Format
 061                            uint typedRowValue => new UintFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(fi
 062                            ulong typedRowValue => new UlongFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(
 063                            ushort typedRowValue => new UshortFieldValueModel(typedRowValue, FieldValueMapper.FormatValu
 064                            _ => throw new UnhandledMappingException(nameof(FieldValueMapper), field.Type.ToString())
 765                        });
 766                }
 67                else
 3768                {
 69#pragma warning disable CS8605 // Unboxing a possibly null value.
 3770                    rowValues.Add(
 3771                        field switch
 3772                        {
 373                            FieldDefinition<bool> derivedField => new BoolFieldValueModel((bool)rowValue, FieldValueMapp
 074                            FieldDefinition<DateTime> derivedField => new DateTimeFieldValueModel((DateTime)rowValue, Fi
 375                            FieldDefinition<double> derivedField => new DoubleFieldValueModel((double)rowValue, FieldVal
 376                            FieldDefinition<float> derivedField => new FloatFieldValueModel((float)rowValue, FieldValueM
 777                            FieldDefinition<int> derivedField => new IntFieldValueModel((int)rowValue, FieldValueMapper.
 378                            FieldDefinition<long> derivedField => new LongFieldValueModel((long)rowValue, FieldValueMapp
 379                            FieldDefinition<short> derivedField => new ShortFieldValueModel((short)rowValue, FieldValueM
 380                            FieldDefinition<string> => new StringFieldValueModel((string?)rowValue, row.Quality, row.Ts)
 381                            FieldDefinition<TimeSpan> derivedField => new TimeSpanFieldValueModel((TimeSpan)rowValue, Fi
 382                            FieldDefinition<uint> derivedField => new UintFieldValueModel((uint)rowValue, FieldValueMapp
 383                            FieldDefinition<ulong> derivedField => new UlongFieldValueModel((ulong)rowValue, FieldValueM
 384                            FieldDefinition<ushort> derivedField => new UshortFieldValueModel((ushort)rowValue, FieldVal
 085                            _ => throw new UnhandledMappingException(nameof(FieldValueMapper), field.Type.ToString())
 3786                        });
 87#pragma warning restore CS8605 // Unboxing a possibly null value.
 3788                }
 4489            }
 690            return rowValues;
 691        }
 92    }
 93}