public InventoryRepository(IHttpContextAccessor accessor, ObMultiChoiceContext db, IMapper mapper) : base( accessor, db) { _db = db; _set = _db.Set <Inventory>(); _mapper = mapper; }
public async Task <T> GetOneBy <T>(CancellationToken token, Expression <Func <T, object> >[] includes = null, params Expression <Func <T, bool> >[] searchTerms) where T : BaseDomainModel { var query = _db.Set <T>().AsNoTracking(); if (includes is null || includes.Length == 0) { query = searchTerms.Aggregate(query, (current, term) => current.Where(term)); var result = await query.SingleOrDefaultAsync(token).ConfigureAwait(false); return(result); } query = includes.Aggregate(query, (current, include) => current.Include(include)); query = searchTerms.Aggregate(query, (current, term) => current.Where(term)); var altResult = await query.SingleOrDefaultAsync(token).ConfigureAwait(false); return(altResult); }