< Summary

Information
Class: MRA.Infrastructure.Storage.Connection.AzureStorageConnection
Assembly: MRA.Infrastructure
File(s): D:\a\MiguelRomerART\MiguelRomerART\MRA.Infrastructure\Storage\Connection\AzureStorageConnection.cs
Line coverage
15%
Covered lines: 3
Uncovered lines: 16
Coverable lines: 19
Total lines: 52
Line coverage: 15.7%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_BlobServiceClient()0%620%
.ctor(...)100%11100%
GetContainer(...)100%210%
GetListBlobsAsync(...)100%210%
GetBlob(...)100%210%
BlobExists()100%210%
UploadAsync()100%210%
UploadImageAsync()100%210%

File(s)

D:\a\MiguelRomerART\MiguelRomerART\MRA.Infrastructure\Storage\Connection\AzureStorageConnection.cs

#LineLine coverage
 1using Azure;
 2using Azure.Storage.Blobs;
 3using Azure.Storage.Blobs.Models;
 4using MRA.Infrastructure.Settings;
 5using SharpCompress.Compressors.Xz;
 6using System.Data.Common;
 7using System.IO;
 8
 9namespace MRA.Infrastructure.Storage.Connection;
 10
 11public class AzureStorageConnection : IAzureStorageConnection
 12{
 13    private readonly string _connectionString;
 14    private BlobServiceClient? _blobServiceClient;
 15    private BlobServiceClient BlobServiceClient
 16    {
 17        get
 18        {
 019            if (_blobServiceClient is null)
 020                _blobServiceClient = new BlobServiceClient(_connectionString);
 21
 022            return _blobServiceClient;
 23        }
 24    }
 25
 126    public AzureStorageConnection(AppSettings config)
 27    {
 128        _connectionString = config.AzureStorage.ConnectionString;
 129    }
 30
 031    public BlobContainerClient GetContainer(string containerName) => BlobServiceClient.GetBlobContainerClient(containerN
 32
 033    public AsyncPageable<BlobItem> GetListBlobsAsync(string containerName) => GetContainer(containerName).GetBlobsAsync(
 34
 035    public BlobClient GetBlob(string containerName, string blobPath) => GetContainer(containerName).GetBlobClient(blobPa
 36
 037    public async Task<bool> BlobExists(string containerName, string blobPath) => await GetBlob(containerName, blobPath).
 38
 39    public async Task<BlobContentInfo> UploadAsync(string containerName, string blobPath, Stream stream)
 040        => await GetBlob(containerName, blobPath).UploadAsync(stream, overwrite: true);
 41
 42    public async Task<BlobContentInfo> UploadImageAsync(string containerName, string blobPath, MemoryStream memoryStream
 43    {
 044        return await GetBlob(containerName, blobPath).UploadAsync(memoryStream, new BlobUploadOptions()
 045        {
 046            HttpHeaders = new BlobHttpHeaders()
 047            {
 048                ContentType = "image/png"
 049            }
 050        });
 051    }
 52}