我正在根据时间段为房间预订编写逻辑。例如,我在数据库中有以下数据:
Id | Start DateTime | End DateTime | Room Name
=====================================================
1 | 2020-01-01 08:00 | 2020-01-01 09:00 | Room A
2 | 2020-01-01 08:00 | 2020-01-01 08:00 | Room B
假设另一个用户在当天的08:00至09:00预订了会议室A,那么他应该能够在此时段预订此会议室,因为已经有一个为此预订的时段。
另一个用户也不能在07:00至08:30期间预订房间A,因为该房间已经从08:00开始预订。另外,另一个用户不应在07:00到10:00之间预订房间-对于我所写的逻辑,在我看来,这种情况正在发生。
请看一下我的代码:
var meetings = _context.Events.AsNoTracking().FirstOrDefault(e => e.Room == eventDto.Room && e.Start == eventDto.Start);
if (meetings != null)
{
if ((eventDto.Start >= meetings.Start && eventDto.Start < meetings.End) || (eventDto.End >= meetings.Start && eventDto.End < meetings.End))
{
success = 0;
return success;
}
}
请帮助我在C#中更正此问题。