< Summary - pva.SuperV

Information
Class: pva.SuperV.Api.Mappers.FieldProcessingMapper
Assembly: pva.SuperV.Api
File(s): /home/runner/work/pva.SuperV/pva.SuperV/pva.SuperV.Api/Mappers/FieldProcessingMapper.cs
Tag: dotnet-ubuntu_22190969454
Line coverage
95%
Covered lines: 79
Uncovered lines: 4
Coverable lines: 83
Total lines: 106
Line coverage: 95.1%
Branch coverage
75%
Covered branches: 47
Total branches: 62
Branch coverage: 75.8%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ToDto(...)57.14%141495.83%
FromDto(...)75%4490%
CreateHistoryProcessing(...)76.92%262694.44%
CreateHistorizationProcessing(...)100%11100%
CreateAlarmStateProcessing(...)88.88%181892.85%
CreateAlarmState(...)100%11100%

File(s)

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

#LineLine coverage
 1using pva.SuperV.Engine;
 2using pva.SuperV.Engine.Exceptions;
 3using pva.SuperV.Engine.Processing;
 4using pva.SuperV.Model.FieldProcessings;
 5using System.Numerics;
 6
 7namespace pva.SuperV.Api.Mappers
 8{
 9    public static class FieldProcessingMapper
 10    {
 11        public static FieldValueProcessingModel ToDto(IFieldValueProcessing fieldProcessing)
 2412        {
 2413            return fieldProcessing switch
 2414            {
 2415                IAlarmStateProcessing alarmStateProcessing =>
 1116                    new AlarmStateProcessingModel(
 1117                        alarmStateProcessing.Name,
 1118                        alarmStateProcessing.TrigerringFieldDefinition!.Name,
 1119                        alarmStateProcessing.HighHighLimitField?.Name,
 1120                        alarmStateProcessing.HighLimitField!.Name,
 1121                        alarmStateProcessing.LowLimitField!.Name,
 1122                        alarmStateProcessing.LowLowLimitField?.Name,
 1123                        alarmStateProcessing.DeadbandField?.Name,
 1124                        alarmStateProcessing.AlarmStateField!.Name,
 1125                        alarmStateProcessing.AckStateField?.Name),
 2426                IHistorizationProcessing historizationProcessing =>
 1327                    new HistorizationProcessingModel(
 1328                        historizationProcessing.Name,
 1329                        historizationProcessing.TrigerringFieldDefinition!.Name,
 1330                        historizationProcessing.HistoryRepository!.Name,
 1331                        historizationProcessing.TimestampFieldDefinition?.Name,
 4032                        [.. historizationProcessing.FieldsToHistorize.Select(field => field.Name)]),
 033                _ => throw new UnhandledMappingException(nameof(FieldProcessingMapper), fieldProcessing.GetType().ToStri
 2434            };
 2435        }
 36
 37        public static IFieldValueProcessing FromDto(Project project, Class clazz, IFieldDefinition fieldDefinition, Fiel
 2238        {
 2239            return fieldProcessingModel switch
 2240            {
 2241                AlarmStateProcessingModel alarmStateProcessingModel =>
 942                    CreateAlarmStateProcessing(clazz, fieldDefinition, alarmStateProcessingModel),
 2243                HistorizationProcessingModel historizationProcessingModel =>
 1344                    CreateHistoryProcessing(project, clazz, fieldDefinition, historizationProcessingModel),
 045                _ => throw new UnhandledMappingException(nameof(FieldProcessingMapper), fieldDefinition.Type.ToString())
 2246            };
 2147        }
 48
 49        private static IHistorizationProcessing CreateHistoryProcessing(Project project, Class clazz, IFieldDefinition f
 1350        {
 1351            return fieldDefinition.Type switch
 1352            {
 1353                Type t when t == typeof(bool) => CreateHistorizationProcessing<bool>(project, clazz, historizationProces
 1354                Type t when t == typeof(DateTime) => CreateHistorizationProcessing<DateTime>(project, clazz, historizati
 1455                Type t when t == typeof(double) => CreateHistorizationProcessing<double>(project, clazz, historizationPr
 1356                Type t when t == typeof(float) => CreateHistorizationProcessing<float>(project, clazz, historizationProc
 1757                Type t when t == typeof(int) => CreateHistorizationProcessing<int>(project, clazz, historizationProcessi
 658                Type t when t == typeof(long) => CreateHistorizationProcessing<long>(project, clazz, historizationProces
 559                Type t when t == typeof(short) => CreateHistorizationProcessing<short>(project, clazz, historizationProc
 360                Type t when t == typeof(string) => CreateHistorizationProcessing<string>(project, clazz, historizationPr
 361                Type t when t == typeof(TimeSpan) => CreateHistorizationProcessing<TimeSpan>(project, clazz, historizati
 462                Type t when t == typeof(uint) => CreateHistorizationProcessing<uint>(project, clazz, historizationProces
 363                Type t when t == typeof(ulong) => CreateHistorizationProcessing<ulong>(project, clazz, historizationProc
 264                Type t when t == typeof(ushort) => CreateHistorizationProcessing<ushort>(project, clazz, historizationPr
 065                _ => throw new UnhandledMappingException(nameof(FieldProcessingMapper), fieldDefinition.Type.ToString())
 1366            };
 1267        }
 68
 69        private static HistorizationProcessing<T> CreateHistorizationProcessing<T>(Project project, Class clazz, Histori
 1370            => new(historizationProcessingModel.Name,
 1371                    project,
 1372                    clazz,
 1373                    historizationProcessingModel.TrigerringFieldName,
 1374                    historizationProcessingModel.HistoryRepositoryName,
 1375                    historizationProcessingModel.TimestampFieldName,
 1376                    historizationProcessingModel.FieldsToHistorize);
 77
 78        private static IAlarmStateProcessing CreateAlarmStateProcessing(Class clazz, IFieldDefinition fieldDefinition, A
 979        {
 980            return fieldDefinition.Type switch
 981            {
 1082                Type t when t == typeof(short) => CreateAlarmState<short>(clazz, alarmStateProcessingModel),
 983                Type t when t == typeof(ushort) => CreateAlarmState<ushort>(clazz, alarmStateProcessingModel),
 984                Type t when t == typeof(int) => CreateAlarmState<int>(clazz, alarmStateProcessingModel),
 685                Type t when t == typeof(uint) => CreateAlarmState<uint>(clazz, alarmStateProcessingModel),
 586                Type t when t == typeof(long) => CreateAlarmState<long>(clazz, alarmStateProcessingModel),
 487                Type t when t == typeof(ulong) => CreateAlarmState<ulong>(clazz, alarmStateProcessingModel),
 388                Type t when t == typeof(float) => CreateAlarmState<float>(clazz, alarmStateProcessingModel),
 289                Type t when t == typeof(double) => CreateAlarmState<double>(clazz, alarmStateProcessingModel),
 090                _ => throw new UnhandledMappingException(nameof(FieldProcessingMapper), fieldDefinition.Type.ToString())
 991            };
 992        }
 93
 94        private static AlarmStateProcessing<T> CreateAlarmState<T>(Class clazz, AlarmStateProcessingModel alarmStateProc
 995            => new(alarmStateProcessingModel.Name,
 996                    clazz,
 997                    alarmStateProcessingModel.TrigerringFieldName,
 998                    alarmStateProcessingModel.HighHighLimitFieldName,
 999                    alarmStateProcessingModel.HighLimitFieldName,
 9100                    alarmStateProcessingModel.LowLimitFieldName,
 9101                    alarmStateProcessingModel.LowLowLimitFieldName,
 9102                    alarmStateProcessingModel.DeadbandFieldName,
 9103                    alarmStateProcessingModel.AlarmStateFieldName,
 9104                    alarmStateProcessingModel.AckStateFieldName);
 105    }
 106}