检查日期时间是否在C#的范围内

我正在根据时间段为房间预订编写逻辑。例如,我在数据库中有以下数据:

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#中更正此问题。

评论