feat(dal,core): Перенесены оставшиеся объекты из dal в core.
This commit is contained in:
@@ -127,6 +127,29 @@ namespace PARR.DAL.Repositories.Unit
|
||||
logger.LogDebug("Наиболее частое значение для поля '{FieldName}': {Value}", fieldName, mostFrequentValue);
|
||||
return mostFrequentValue;
|
||||
}
|
||||
|
||||
|
||||
public IQueryable<Guid> GetMatchingTargetIds(Guid fieldId, string valueMask)
|
||||
{
|
||||
//TODO: Вынесено из UnitFilterService
|
||||
|
||||
//var matchingTargetIds = await unitInValueService.Get()
|
||||
// .AsNoTracking()
|
||||
// .Where(uiv => uiv.FieldId == relFilter.FieldId)
|
||||
// .Where(uiv => EF.Functions.ILike(uiv.Value.Value, dbValueMask))
|
||||
// .Select(uiv => uiv.UnitId)
|
||||
// .Distinct()
|
||||
// .ToListAsync(cancellationToken);
|
||||
|
||||
return Get()
|
||||
.AsNoTracking()
|
||||
.Where(uiv => uiv.FieldId == fieldId)
|
||||
.Where(uiv => EF.Functions.ILike(uiv.Value.Value, valueMask))
|
||||
.Select(uiv => uiv.UnitId)
|
||||
.Distinct();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ using PARR.Core.Repositories.Interfaces.Unit;
|
||||
using PARR.DAL.Context;
|
||||
using PARR.DAL.Repositories.Base;
|
||||
|
||||
|
||||
namespace PARR.DAL.Repositories.Unit
|
||||
{
|
||||
internal class UnitRepository : BaseRepository<Domain.Entities.Unit.Unit>, IUnitRepository
|
||||
@@ -19,5 +20,42 @@ namespace PARR.DAL.Repositories.Unit
|
||||
.Include(t => t.UnitValues)
|
||||
.ThenInclude(t => t.Value);
|
||||
}
|
||||
|
||||
|
||||
public IQueryable<PARR.Domain.Entities.Unit.Unit> GetUnitByFieldAndValue(IQueryable<PARR.Domain.Entities.Unit.Unit> query, Guid fieldId, string valueMask, bool isInverse = false)
|
||||
{
|
||||
//TODO: вынесено из UnitFilterService
|
||||
|
||||
if (isInverse)
|
||||
{
|
||||
query = query.Where(u => !u.UnitValues.Any(v =>
|
||||
v.FieldId == fieldId &&
|
||||
EF.Functions.ILike(v.Value.Value, valueMask)));
|
||||
}
|
||||
else
|
||||
{
|
||||
query = query.Where(u => u.UnitValues.Any(v =>
|
||||
v.FieldId == fieldId &&
|
||||
EF.Functions.ILike(v.Value.Value, valueMask)));
|
||||
}
|
||||
|
||||
return query;
|
||||
}
|
||||
|
||||
public IQueryable<Guid> GetInitialUnitIds(string dbValueMask)
|
||||
{
|
||||
//TODO: вынесено из UnitFilterService
|
||||
|
||||
//var initialUnitIds = await unitService.Get().AsNoTracking()
|
||||
//.Where(unit => EF.Functions.ILike(unit.Name, dbValueMask))
|
||||
//.Select(u => u.Id)
|
||||
//.ToListAsync(cancellationToken);
|
||||
|
||||
return Get().AsNoTracking()
|
||||
.Where(unit => EF.Functions.ILike(unit.Name, dbValueMask))
|
||||
.Select(u => u.Id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user