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, IUnitService { private readonly DataContext dataContext; protected override DbSet EntitySet => dataContext.Units; protected override DataContext EntitiContext => dataContext; public UnitService(DataContext dataContext, ILogger logger) : base(logger) { this.dataContext = dataContext; } public async Task GetUnitByName(string name) { return await GetUnitWithFieldsAndValues() .FirstOrDefaultAsync(u => u.Name.ToLower() == name.ToLower()); } private IQueryable GetUnitWithFieldsAndValues() { return EntitySet .Include(u => u.UnitFields) .ThenInclude(f => f.UnitField) .Include(u => u.UnitValues) .ThenInclude(v => v.Value); } } }