< Summary

Information
Class: OzonRepositories.Data.DeliveryRepository
Assembly: OzonRepositories
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonRepositories/Data/DeliveryRepository.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 28
Coverable lines: 28
Total lines: 62
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%210%
GetOrCreateDeliveryAsync()0%620%
GetAllAsync()100%210%
GetByIdAsync()100%210%
GetOrCreateProviderAsync()0%620%
GetAllProvider()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonRepositories/Data/DeliveryRepository.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore;
 2using OzonDomains;
 3using OzonDomains.Models;
 4using OzonRepositories.Context;
 5
 6namespace OzonRepositories.Data;
 7
 8public class DeliveryRepository
 9{
 10    private readonly ApplicationDbContext _context;
 11
 012    public DeliveryRepository(ApplicationDbContext context)
 13    {
 014        _context = context;
 015    }
 16
 17    public async Task<Delivery> GetOrCreateDeliveryAsync(string deliveryName, string providerName)
 18    {
 019        var provider = await GetOrCreateProviderAsync(providerName);
 20
 021        var delivery = await _context.Deliveries
 022            .FirstOrDefaultAsync(d => d.Name == deliveryName && d.ProviderId == provider.Id);
 23
 024        if (delivery != null)
 025            return delivery;
 26
 027        delivery = new Delivery { Name = deliveryName, ProviderId = provider.Id };
 028        _context.Deliveries.Add(delivery);
 029        await _context.SaveChangesAsync();
 030        return delivery;
 031    }
 32
 33
 34    public async Task<List<Delivery>> GetAllAsync()
 35    {
 036        return await _context.Deliveries.ToListAsync();
 037    }
 38
 39    public async Task<Delivery?> GetByIdAsync(int id)
 40    {
 041        return await _context.Deliveries.FindAsync(id);
 042    }
 43
 44    private async Task<DeliveryProvider> GetOrCreateProviderAsync(string providerName)
 45    {
 046        var provider = await _context.DeliveryProviders
 047            .FirstOrDefaultAsync(p => p.Name == providerName);
 48
 049        if (provider != null)
 050            return provider;
 51
 052        provider = new DeliveryProvider { Name = providerName };
 053        _context.DeliveryProviders.Add(provider);
 054        await _context.SaveChangesAsync();
 055        return provider;
 056    }
 57
 58    public async Task<List<DeliveryProvider>> GetAllProvider()
 59    {
 060        return await _context.DeliveryProviders.ToListAsync();
 061    }
 62}