< Summary - pva.SuperV

Information
Class: pva.SuperV.Api.Services.FieldProcessings.FieldProcessingService
Assembly: pva.SuperV.Api
File(s): /home/runner/work/pva.SuperV/pva.SuperV/pva.SuperV.Api/Services/FieldProcessings/FieldProcessingService.cs
Tag: dotnet-ubuntu_22190969454
Line coverage
94%
Covered lines: 51
Uncovered lines: 3
Coverable lines: 54
Total lines: 83
Line coverage: 94.4%
Branch coverage
50%
Covered branches: 4
Total branches: 8
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
GetFieldProcessingsAsync()100%11100%
GetFieldProcessingAsync()50%22100%
CreateFieldProcessingAsync()50%2291.66%
UpdateFieldProcessingAsync()50%2291.66%
DeleteFieldProcessingAsync()50%2290%

File(s)

/home/runner/work/pva.SuperV/pva.SuperV/pva.SuperV.Api/Services/FieldProcessings/FieldProcessingService.cs

#LineLine coverage
 1using pva.SuperV.Api.Exceptions;
 2using pva.SuperV.Api.Mappers;
 3using pva.SuperV.Engine;
 4using pva.SuperV.Engine.Exceptions;
 5using pva.SuperV.Engine.Processing;
 6using pva.SuperV.Model.FieldProcessings;
 7using pva.SuperV.Model.Services;
 8
 9namespace pva.SuperV.Api.Services.FieldProcessings
 10{
 11    public class FieldProcessingService : BaseService, IFieldProcessingService
 12    {
 13        private readonly ILogger logger;
 14
 815        public FieldProcessingService(ILoggerFactory loggerFactory)
 816        {
 817            this.logger = loggerFactory.CreateLogger(this.GetType());
 818        }
 19
 20        public async Task<List<FieldValueProcessingModel>> GetFieldProcessingsAsync(string projectId, string className, 
 121        {
 122            logger.LogDebug("Getting field processings on field {FieldName} for class {ClassName} of project {ProjectId}
 123                fieldName, className, projectId);
 124            IFieldDefinition fieldDefinition = GetFieldDefinitionEntity(GetProjectEntity(projectId), className, fieldNam
 325            return await Task.FromResult(fieldDefinition.ValuePostChangeProcessings.ConvertAll(field => FieldProcessingM
 126        }
 27
 28        public async Task<FieldValueProcessingModel> GetFieldProcessingAsync(string projectId, string className, string 
 129        {
 130            logger.LogDebug("Getting field processing {ProcessingName} on field {FieldName} for class {ClassName} of pro
 131                processingName, fieldName, className, projectId);
 132            IFieldDefinition fieldDefinition = GetFieldDefinitionEntity(GetProjectEntity(projectId), className, fieldNam
 133            IFieldValueProcessing? processing = fieldDefinition.ValuePostChangeProcessings
 234                .FirstOrDefault(field => field.Name.Equals(processingName));
 135            return processing is not null
 136                ? await Task.FromResult(FieldProcessingMapper.ToDto(processing))
 137                : await Task.FromException<FieldValueProcessingModel>(new UnknownEntityException("FieldValueProcessing",
 138        }
 39
 40        public async Task<FieldValueProcessingModel> CreateFieldProcessingAsync(string projectId, string className, stri
 2141        {
 2142            logger.LogDebug("Creating field processing {ProcessingName} on field {FieldName} for class {ClassName} of pr
 2143                createRequest.Name, fieldName, className, projectId);
 2144            if (GetProjectEntity(projectId) is WipProject wipProject)
 2145            {
 2146                Class clazz = GetClassEntity(wipProject, className);
 2147                IFieldDefinition fieldDefinition = GetFieldDefinitionEntity(clazz, fieldName);
 2148                IFieldValueProcessing fieldProcessing = FieldProcessingMapper.FromDto(wipProject, clazz, fieldDefinition
 2049                wipProject.AddFieldChangePostProcessing(className, fieldName, fieldProcessing);
 2050                return await Task.FromResult(FieldProcessingMapper.ToDto(fieldProcessing));
 51            }
 052            return await Task.FromException<FieldValueProcessingModel>(new NonWipProjectException(projectId));
 2053        }
 54
 55        public async Task<FieldValueProcessingModel> UpdateFieldProcessingAsync(string projectId, string className, stri
 156        {
 157            logger.LogDebug("Updating field processing {ProcessingName} on field {FieldName} for class {ClassName} of pr
 158                processingName, fieldName, className, projectId);
 159            if (GetProjectEntity(projectId) is WipProject wipProject)
 160            {
 161                Class clazz = GetClassEntity(wipProject, className);
 162                IFieldDefinition fieldDefinition = GetFieldDefinitionEntity(clazz, fieldName);
 163                IFieldValueProcessing fieldProcessing = FieldProcessingMapper.FromDto(wipProject, clazz, fieldDefinition
 164                wipProject.UpdateFieldChangePostProcessing(className, fieldName, processingName, fieldProcessing);
 165                return await Task.FromResult(FieldProcessingMapper.ToDto(fieldProcessing));
 66            }
 067            return await Task.FromException<FieldValueProcessingModel>(new NonWipProjectException(projectId));
 168        }
 69
 70        public async ValueTask DeleteFieldProcessingAsync(string projectId, string className, string fieldName, string p
 171        {
 172            logger.LogDebug("Deleting field processing {ProcessingName} on field {FieldName} for class {ClassName} of pr
 173                processingName, fieldName, className, projectId);
 174            if (GetProjectEntity(projectId) is WipProject wipProject)
 175            {
 176                wipProject.RemoveFieldChangePostProcessing(className, fieldName, processingName);
 177                await ValueTask.CompletedTask;
 178                return;
 79            }
 080            await ValueTask.FromException(new NonWipProjectException(projectId));
 181        }
 82    }
 83}