< Summary

Information
Class: OzonRepositories.Data.OrderExtraExpenseRepository
Assembly: OzonRepositories
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonRepositories/Data/OrderExtraExpenseRepository.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 49
Coverable lines: 49
Total lines: 108
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%
Add()100%210%
Delete()100%210%
Get()100%210%
GetAsync()100%210%
GetAsync()100%210%
Update()100%210%
GetByOrderId()100%210%
GetByOrderIds()100%210%
DeleteByOrderId()100%210%
AddRange()100%210%
SaveChanges()100%210%

File(s)

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

#LineLine coverage
 1using Microsoft.EntityFrameworkCore;
 2using OzonDomains.Models;
 3using OzonRepositories.Context;
 4
 5namespace OzonRepositories.Data
 6{
 7    public class OrderExtraExpenseRepository : MainRepository, IRepository<OrderExtraExpense>
 8    {
 09        public OrderExtraExpenseRepository(ApplicationDbContext orderContext) : base(orderContext)
 10        {
 011        }
 12
 13        public async Task<int> Add(OrderExtraExpense value)
 14        {
 015            await _context.OrderExtraExpenses.AddAsync(value);
 016            return await _context.SaveChangesAsync();
 017        }
 18
 19        public async Task<int> Delete(OrderExtraExpense value)
 20        {
 021            _context.OrderExtraExpenses.Remove(value);
 022            return await _context.SaveChangesAsync();
 023        }
 24
 25        public async Task<List<OrderExtraExpense>> Get()
 26        {
 027            return await _context.OrderExtraExpenses
 028                .Include(e => e.ExpenseType)
 029                .Include(e => e.Order)
 030                .ToListAsync();
 031        }
 32
 33        public async Task<OrderExtraExpense?> GetAsync(int id)
 34        {
 035            return await _context.OrderExtraExpenses
 036                .Include(e => e.ExpenseType)
 037                .Include(e => e.Order)
 038                .FirstOrDefaultAsync(e => e.Id == id);
 039        }
 40
 41        public async Task<OrderExtraExpense?> GetAsync(OrderExtraExpense value)
 42        {
 043            return await _context.OrderExtraExpenses
 044                .Include(e => e.ExpenseType)
 045                .Include(e => e.Order)
 046                .FirstOrDefaultAsync(e => e.OrderId == value.OrderId && e.ExpenseTypeId == value.ExpenseTypeId);
 047        }
 48
 49        public async Task<int> Update(OrderExtraExpense value)
 50        {
 051            _context.OrderExtraExpenses.Update(value);
 052            return await _context.SaveChangesAsync();
 053        }
 54
 55        /// <summary>
 56        /// Получить все расходы для заказа
 57        /// </summary>
 58        public async Task<List<OrderExtraExpense>> GetByOrderId(int orderId)
 59        {
 060            return await _context.OrderExtraExpenses
 061                .Include(e => e.ExpenseType)
 062                .Where(e => e.OrderId == orderId)
 063                .ToListAsync();
 064        }
 65
 66        /// <summary>
 67        /// Получить все расходы для списка заказов
 68        /// </summary>
 69        public async Task<Dictionary<int, List<OrderExtraExpense>>> GetByOrderIds(List<int> orderIds)
 70        {
 071            var expenses = await _context.OrderExtraExpenses
 072                .Include(e => e.ExpenseType)
 073                .Where(e => orderIds.Contains(e.OrderId))
 074                .ToListAsync();
 75
 076            return expenses.GroupBy(e => e.OrderId)
 077                .ToDictionary(g => g.Key, g => g.ToList());
 078        }
 79
 80        /// <summary>
 81        /// Удалить все расходы для заказа
 82        /// </summary>
 83        public async Task<int> DeleteByOrderId(int orderId)
 84        {
 085            var expenses = await _context.OrderExtraExpenses
 086                .Where(e => e.OrderId == orderId)
 087                .ToListAsync();
 88
 089            _context.OrderExtraExpenses.RemoveRange(expenses);
 090            return await _context.SaveChangesAsync();
 091        }
 92
 93        /// <summary>
 94        /// Добавить несколько расходов
 95        /// </summary>
 96        public async Task<int> AddRange(List<OrderExtraExpense> expenses)
 97        {
 098            await _context.OrderExtraExpenses.AddRangeAsync(expenses);
 099            return await _context.SaveChangesAsync();
 0100        }
 101
 102        public new async Task<int> SaveChanges()
 103        {
 0104            return await _context.SaveChangesAsync();
 0105        }
 106    }
 107}
 108