< Summary - pva.SuperV

Information
Class: pva.SuperV.Api.Services.HistoryRepositories.HistoryRepositoryService
Assembly: pva.SuperV.Api
File(s): /home/runner/work/pva.SuperV/pva.SuperV/pva.SuperV.Api/Services/HistoryRepositories/HistoryRepositoryService.cs
Tag: dotnet-ubuntu_22190969454
Line coverage
72%
Covered lines: 35
Uncovered lines: 13
Coverable lines: 48
Total lines: 78
Line coverage: 72.9%
Branch coverage
37%
Covered branches: 3
Total branches: 8
Branch coverage: 37.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
GetHistoryRepositoriesAsync()100%11100%
GetHistoryRepositoryAsync()50%2287.5%
CreateHistoryRepositoryAsync()50%2290%
UpdateHistoryRepositoryAsync()0%620%
DeleteHistoryRepositoryAsync()50%2290%

File(s)

/home/runner/work/pva.SuperV/pva.SuperV/pva.SuperV.Api/Services/HistoryRepositories/HistoryRepositoryService.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.HistoryStorage;
 6using pva.SuperV.Model.HistoryRepositories;
 7using pva.SuperV.Model.Services;
 8
 9namespace pva.SuperV.Api.Services.HistoryRepositories
 10{
 11    public class HistoryRepositoryService : BaseService, IHistoryRepositoryService
 12    {
 13        private readonly ILogger logger;
 14
 615        public HistoryRepositoryService(ILoggerFactory loggerFactory)
 616        {
 617            this.logger = loggerFactory.CreateLogger(this.GetType());
 618        }
 19
 20        public async Task<List<HistoryRepositoryModel>> GetHistoryRepositoriesAsync(string projectId)
 121        {
 122            logger.LogDebug("Getting history repositories for project {ProjectId}",
 123                projectId);
 124            Project project = GetProjectEntity(projectId);
 125            return await Task.FromResult(project.HistoryRepositories.Values.Select(HistoryRepositoryMapper.ToDto).ToList
 126        }
 27
 28        public async Task<HistoryRepositoryModel> GetHistoryRepositoryAsync(string projectId, string historyRepositoryNa
 129        {
 130            logger.LogDebug("Getting history repository {HistoryRepository} for project {ProjectId}",
 131                historyRepositoryName, projectId);
 132            if (GetProjectEntity(projectId).HistoryRepositories.TryGetValue(historyRepositoryName, out HistoryRepository
 133            {
 134                return await Task.FromResult(HistoryRepositoryMapper.ToDto(historyRepository));
 35            }
 036            return await Task.FromException<HistoryRepositoryModel>(new UnknownEntityException("History repository", his
 137        }
 38
 39        public async Task<HistoryRepositoryModel> CreateHistoryRepositoryAsync(string projectId, HistoryRepositoryModel 
 240        {
 241            logger.LogDebug("Creating history repository {HistoryRepository} for project {ProjectId}",
 242                historyRepositoryCreateRequest.Name, projectId);
 243            if (GetProjectEntity(projectId) is WipProject wipProject)
 244            {
 245                HistoryRepository historyRepository = HistoryRepositoryMapper.FromDto(historyRepositoryCreateRequest);
 246                wipProject.AddHistoryRepository(historyRepository);
 247                return await Task.FromResult(HistoryRepositoryMapper.ToDto(historyRepository));
 48            }
 049            return await Task.FromException<HistoryRepositoryModel>(new NonWipProjectException(projectId));
 250        }
 51
 52        public async Task<HistoryRepositoryModel> UpdateHistoryRepositoryAsync(string projectId, string historyRepositor
 053        {
 054            logger.LogDebug("Updating history repository {HistoryRepository} for project {ProjectId}",
 055                historyRepositoryUpdateRequest.Name, projectId);
 056            if (GetProjectEntity(projectId) is WipProject wipProject)
 057            {
 058                HistoryRepository historyRepositoryUpdate = HistoryRepositoryMapper.FromDto(historyRepositoryUpdateReque
 059                wipProject.UpdateHistoryRepository(historyRepositoryName, historyRepositoryUpdate);
 060                return await Task.FromResult(HistoryRepositoryMapper.ToDto(historyRepositoryUpdate));
 61            }
 062            return await Task.FromException<HistoryRepositoryModel>(new NonWipProjectException(projectId));
 063        }
 64
 65        public async ValueTask DeleteHistoryRepositoryAsync(string projectId, string historyRepositoryName)
 266        {
 267            logger.LogDebug("Deleting history repository {HistoryRepository} for project {ProjectId}",
 268                historyRepositoryName, projectId);
 269            if (GetProjectEntity(projectId) is WipProject wipProject)
 270            {
 271                wipProject.RemoveHistoryRepository(historyRepositoryName);
 172                await ValueTask.CompletedTask;
 173                return;
 74            }
 075            await ValueTask.FromException(new NonWipProjectException(projectId));
 176        }
 77    }
 78}