score:2

Accepted answer

I like this one (overlapping dates)! In general the formula is:

var dateFrom = ;// start of week
var dateTo = ; // end of week

var events = rep.Get()
    .Where(e => e.Start <= dateTo && e.End >= dateFrom)
    .AsQueryable();

Because you need things contained by the range, starting in the range and extending out, starting before the range and ending in, and starting before and ending after the range.

But if you need to handle a nullable .End then maybe more like:

var dateFrom = ;// start of week
var dateTo = ; // end of week

var events = rep.Get()
    .Where(e => e.Start <= dateTo && (e.End ?? e.Start) >= dateFrom)
    .AsQueryable();

(very) rudimentary mockup to help visualize:

Rudimentary mockup


Related Query

More Query from same tag