< Summary - pva.SuperV

Information
Class: pva.SuperV.Api.Mappers.HistoryRowMapper
Assembly: pva.SuperV.Api
File(s): /home/runner/work/pva.SuperV/pva.SuperV/pva.SuperV.Api/Mappers/HistoryRowMapper.cs
Tag: dotnet-ubuntu_22190969454
Line coverage
95%
Covered lines: 67
Uncovered lines: 3
Coverable lines: 70
Total lines: 94
Line coverage: 95.7%
Branch coverage
94%
Covered branches: 49
Total branches: 52
Branch coverage: 94.2%
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(...)94.23%535293.75%

File(s)

/home/runner/work/pva.SuperV/pva.SuperV/pva.SuperV.Api/Mappers/HistoryRowMapper.cs

#LineLine coverage
 1using pva.SuperV.Engine;
 2using pva.SuperV.Engine.Exceptions;
 3using pva.SuperV.Engine.HistoryRetrieval;
 4using pva.SuperV.Model.HistoryRetrieval;
 5using pva.SuperV.Model.Instances;
 6
 7namespace pva.SuperV.Api.Mappers
 8{
 9    public static class HistoryRowMapper
 10    {
 11        public static List<HistoryRowModel> ToDto(List<HistoryRow> rows, List<IFieldDefinition> fields)
 1412        {
 1413            return [.. rows.Select(row
 2914                => new HistoryRowModel(row.Ts.ToUniversalTime(), row.Quality, BuildRowValues(row, fields, false)
 2915                    ))];
 1416        }
 17
 18        public static List<HistoryStatisticsRowModel> ToDto(List<HistoryStatisticRow> rows, List<IFieldDefinition> field
 1219        {
 1220            return [.. rows.Select(row
 2421                => new HistoryStatisticsRowModel(row.Ts.ToUniversalTime(), row.StartTime, row.EndTime, row.Duration, row
 2422                    ))];
 1223        }
 24
 25        public static List<HistoryRawRowModel> ToRawDto(List<HistoryRow> rows)
 1426        {
 1427            return [.. rows.Select(row
 2928                => new HistoryRawRowModel(row.Ts.ToUniversalTime(), row.Quality,
 3729                       [.. row.Values.Select(value => value!)]
 2930                    ))];
 1431        }
 32
 33        public static List<HistoryStatisticsRawRowModel> ToRawDto(List<HistoryStatisticRow> rows)
 1234        {
 1235            return [.. rows.Select(row
 2436                => new HistoryStatisticsRawRowModel(row.Ts.ToUniversalTime(), row.StartTime, row.EndTime, row.Duration, 
 1437                       [.. row.Values.Select(value => value!)]
 2438                    ))];
 1239        }
 40
 41        private static List<FieldValueModel> BuildRowValues(HistoryRow row, List<IFieldDefinition> fields, bool useRowVa
 2742        {
 2743            List<FieldValueModel> rowValues = [];
 16244            for (int index = 0; index < fields.Count; index++)
 5445            {
 5446                object? rowValue = row.Values[index];
 5447                IFieldDefinition field = fields[index];
 5448                if (useRowValuesDatatype)
 1749                {
 1750                    rowValues.Add(
 1751                        rowValue switch
 1752                        {
 153                            bool typedRowValue => new BoolFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(fi
 154                            DateTime typedRowValue => new DateTimeFieldValueModel(typedRowValue, FieldValueMapper.Format
 555                            double typedRowValue => new DoubleFieldValueModel(typedRowValue, FieldValueMapper.FormatValu
 156                            float typedRowValue => new FloatFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(
 257                            int typedRowValue => new IntFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(fiel
 258                            long typedRowValue => new LongFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(fi
 159                            short typedRowValue => new ShortFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(
 160                            string typedRowValue => new StringFieldValueModel(typedRowValue, null, row.Quality, row.Ts),
 061                            TimeSpan typedRowValue => new TimeSpanFieldValueModel(typedRowValue, FieldValueMapper.Format
 162                            uint typedRowValue => new UintFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(fi
 163                            ulong typedRowValue => new UlongFieldValueModel(typedRowValue, FieldValueMapper.FormatValue(
 164                            ushort typedRowValue => new UshortFieldValueModel(typedRowValue, FieldValueMapper.FormatValu
 065                            _ => throw new UnhandledMappingException(nameof(FieldValueMapper), field.Type.ToString())
 1766                        });
 1767                }
 68                else
 3769                {
 70#pragma warning disable CS8605 // Unboxing a possibly null value.
 3771                    rowValues.Add(
 3772                        field switch
 3773                        {
 374                            FieldDefinition<bool> derivedField => new BoolFieldValueModel((bool)rowValue, FieldValueMapp
 175                            FieldDefinition<DateTime> derivedField => new DateTimeFieldValueModel((DateTime)rowValue, Fi
 376                            FieldDefinition<double> derivedField => new DoubleFieldValueModel((double)rowValue, FieldVal
 377                            FieldDefinition<float> derivedField => new FloatFieldValueModel((float)rowValue, FieldValueM
 678                            FieldDefinition<int> derivedField => new IntFieldValueModel((int)rowValue, FieldValueMapper.
 379                            FieldDefinition<long> derivedField => new LongFieldValueModel((long)rowValue, FieldValueMapp
 380                            FieldDefinition<short> derivedField => new ShortFieldValueModel((short)rowValue, FieldValueM
 381                            FieldDefinition<string> => new StringFieldValueModel((string?)rowValue, null, row.Quality, r
 382                            FieldDefinition<TimeSpan> derivedField => new TimeSpanFieldValueModel((TimeSpan)rowValue, Fi
 383                            FieldDefinition<uint> derivedField => new UintFieldValueModel((uint)rowValue, FieldValueMapp
 384                            FieldDefinition<ulong> derivedField => new UlongFieldValueModel((ulong)rowValue, FieldValueM
 385                            FieldDefinition<ushort> derivedField => new UshortFieldValueModel((ushort)rowValue, FieldVal
 086                            _ => throw new UnhandledMappingException(nameof(FieldValueMapper), field.Type.ToString())
 3787                        });
 88#pragma warning restore CS8605 // Unboxing a possibly null value.
 3789                }
 5490            }
 2791            return rowValues;
 2792        }
 93    }
 94}