< Summary

Information
Class: Anichron.Core.Data.Repository.EfMediaAssetRepository
Assembly: Anichron.Core
File(s): /home/runner/work/anichron/anichron/src/Anichron.Core/Data/Repository/MediaAssetRepository.cs
Tag: 228_36821334185
Line coverage
0%
Covered lines: 0
Uncovered lines: 4
Coverable lines: 4
Total lines: 20
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%210%
FindByHashAsync(...)100%210%
Add(...)100%210%

File(s)

/home/runner/work/anichron/anichron/src/Anichron.Core/Data/Repository/MediaAssetRepository.cs

#LineLine coverage
 1using Anichron.Core.Domain;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace Anichron.Core.Data.Repository;
 5
 6public interface IMediaAssetRepository
 7{
 8    Task<MediaAsset?> FindByHashAsync(string contentHash, Guid storageConfigId, CancellationToken ct);
 9    void Add(MediaAsset asset);
 10}
 11
 012public sealed class EfMediaAssetRepository(AnichronDbContext db) : IMediaAssetRepository
 13{
 14    public Task<MediaAsset?> FindByHashAsync(string contentHash, Guid storageConfigId, CancellationToken ct)
 015        => db.MediaAssets.FirstOrDefaultAsync(
 016            a => a.ContentHash == contentHash && a.StorageConfigId == storageConfigId, ct);
 17
 18    public void Add(MediaAsset asset)
 019        => db.MediaAssets.Add(asset);
 20}