Я хочу проверить, зарезервирован ли этот конкретный номер:
bool overlaps = false;
Этот способ находит только first roomId
со значением 5
потому что это FirstOrDefault();
var room = (from u in db.Reservation
where u.RoomId == roomId
select u
).FirstOrDefault();
if((StartDateWantToBook <= room.EndDate) && (room.StartDate <= EndDateWantToBook))
{
overlaps = true;
MessageBox.Show("This room is already reserved");
}
else
{
// Process to reserv this room
overlaps = false;
}
Но если у меня есть roomId
со значением 5 в нескольких строках с разными датами начала и окончания, я думаю, что вместо этого я должен использовать Tolist()
.Может быть так:
var room = (from u in db.Reservation
where u.RoomId == roomId
select u
).Tolist();
Вопрос:
Как проверить каждые roomId
со значением 5а затем предотвратить перекрытие дат в той же комнате?
Я пробовал следующее, но иногда это не работает ...
foreach(var item in room)
{
if((StartDateWantToBook <= item.EndDate) && (item.StartDate <= EndDateWantToBook))
{
overlaps = true;
MessageBox.Show("This room is already reserved");
}
else
{
// Process to reserv this room
overlaps = false;
}