in ContosoRepository/Sql/SqlOrderRepository.cs [51:87]
public async Task<Order> GetAsync(Guid id) =>
await _db.Orders
.Include(order => order.LineItems)
.ThenInclude(lineItem => lineItem.Product)
.AsNoTracking()
.FirstOrDefaultAsync(order => order.Id == id);
public async Task<IEnumerable<Order>> GetForCustomerAsync(Guid id) =>
await _db.Orders
.Where(order => order.CustomerId == id)
.Include(order => order.LineItems)
.ThenInclude(lineItem => lineItem.Product)
.AsNoTracking()
.ToListAsync();
public async Task<IEnumerable<Order>> GetAsync(string value)
{
string[] parameters = value.Split(' ');
return await _db.Orders
.Include(order => order.Customer)
.Include(order => order.LineItems)
.ThenInclude(lineItem => lineItem.Product)
.Where(order => parameters
.Any(parameter =>
order.Address.StartsWith(parameter) ||
order.Customer.FirstName.StartsWith(parameter) ||
order.Customer.LastName.StartsWith(parameter) ||
order.InvoiceNumber.ToString().StartsWith(parameter)))
.OrderByDescending(order => parameters
.Count(parameter =>
order.Address.StartsWith(parameter) ||
order.Customer.FirstName.StartsWith(parameter) ||
order.Customer.LastName.StartsWith(parameter) ||
order.InvoiceNumber.ToString().StartsWith(parameter)))
.AsNoTracking()
.ToListAsync();
}