public async Task <Payrun> GetPayRunAsync(Guid payRunId, PayRunFields fields = PayRunFields.None, bool trackChanges = false) { var query = BuildPayRunQuery( _dbContext.Payruns.Where(p => p.Id == payRunId), fields) .TrackChanges(trackChanges); return(await query.SingleOrDefaultAsync()); }
private static IQueryable <Payrun> BuildPayRunQuery(IQueryable <Payrun> query, PayRunFields fields) { if (fields.HasFlag(PayRunFields.Creator)) { query = query.Include(p => p.Creator); } if (fields.HasFlag(PayRunFields.Updater)) { query = query.Include(p => p.Updater); } if (fields.HasFlag(PayRunFields.PayrunInvoices)) { query = query.Include(p => p.PayrunInvoices); } return(query); }