Мне нравится этот (перекрывающиеся даты)!В общем случае формула имеет вид:
var dateFrom = ;// start of week
var dateTo = ; // end of week
var events = rep.Get()
.Where(e => e.Start <= dateTo && e.End >= dateFrom)
.AsQueryable();
Поскольку вам нужны вещи, содержащиеся в диапазоне, начиная с диапазона и расширяясь, начиная с диапазона и заканчивая внутри, начиная с и заканчивая после диапазона.
Но если вам нужно обработать nullable
.End
, то, возможно, вам больше подойдет:
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();
(очень) элементарный макет для визуализации: