40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Logging;
|
|
using PARR.DAL.Context;
|
|
using PARR.DAL.Services.Abstracts;
|
|
using PARR.DAL.Services.Interfaces.Unit;
|
|
|
|
namespace PARR.DAL.Services.Implementations.Unit
|
|
{
|
|
internal class UnitService : BaseService<Models.Unit.Unit>, IUnitService
|
|
{
|
|
private readonly DataContext dataContext;
|
|
|
|
protected override DbSet<Models.Unit.Unit> EntitySet => dataContext.Units;
|
|
|
|
protected override DataContext EntitiContext => dataContext;
|
|
|
|
public UnitService(DataContext dataContext, ILogger<UnitService> logger) : base(logger)
|
|
{
|
|
this.dataContext = dataContext;
|
|
}
|
|
|
|
|
|
public async Task<Models.Unit.Unit?> GetByName(string name)
|
|
{
|
|
return await GetUnitWithFieldsAndValues()
|
|
.FirstOrDefaultAsync(u => u.Name.ToLower().Trim() == name.ToLower().Trim());
|
|
}
|
|
|
|
|
|
private IQueryable<Models.Unit.Unit> GetUnitWithFieldsAndValues()
|
|
{
|
|
return EntitySet
|
|
.Include(u => u.UnitFields)
|
|
.ThenInclude(f => f.UnitField)
|
|
.Include(u => u.UnitValues)
|
|
.ThenInclude(v => v.Value);
|
|
}
|
|
}
|
|
}
|