Files
parr_api/PARR.DAL/Repositories/Unit/UnitInUnitRepository.cs

41 lines
1.2 KiB
C#

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PARR.Core.Repositories.Interfaces.Unit;
using PARR.DAL.Context;
using PARR.Domain.Entities.Unit;
namespace PARR.DAL.Repositories.Unit
{
internal class UnitInUnitRepository : IUnitInUnitRepository
{
private readonly DataContext dataContext;
private readonly ILogger<UnitInUnitRepository> logger;
public UnitInUnitRepository(
DataContext dataContext,
ILogger<UnitInUnitRepository> logger
)
{
this.dataContext = dataContext;
this.logger = logger;
}
public IQueryable<UnitInUnit> Get()
{
return dataContext.UnitInUnits;
}
public async Task<List<Guid>> GetRelatedUnitIdsAsync(Guid unitId, CancellationToken ct = default)
{
return await Get()
.AsNoTracking()
.Where(link => link.ChildUnitId == unitId || link.ParentUnitId == unitId)
.Select(link => link.ChildUnitId == unitId ? link.ParentUnitId : link.ChildUnitId)
.Distinct()
.ToListAsync(ct);
}
}
}