1

誰かが私を助けることができるかどうか疑問に思っていますか?部屋の予約システムでイベントが重複しないようにしようとしています。各イベントには、開始日時と終了日時があります。私がしたいのは、ユーザーがイベントのためにすでに存在する時間の間にイベントを予約しようとすると、エラーになることです。

したがって、たとえば、以下は重複するためエラーになるはずです:-

Event 1:
- Start Date/Time: 10/08/2012 09:00
- End Date/Time: 10/08/2012 11:00

Event 2:
- Start Date/Time: 10/08/2012 10:00
- End Date/Time: 10/08/2012 12:00

私は MVC と Entity Framework を使用しているため、Linq ソリューションが望ましいでしょう。

どんな助けでも大歓迎です:)

4

1 に答える 1

3

次のような意味ですか。

new List<Event>()
{
    new Event() { StartsAt = DateTime.Now.AddHours(-1), EndsAt = DateTime.Now.AddHours(1) } 
};

Event newEvent = new Event() { StartsAt = DateTime.Now.AddHours(-3), EndsAt = DateTime.Now.AddHours(-2) };
bool newEventBookable = !existingsEvents.Any(x => x.StartsAt <= newEvent.EndsAt && x.EndsAt >= newEvent.StartsAt);

newEventBookable が false の場合は、エラーをスローできます。

このロジックは、前後のイベント、重複するイベント、および含まれるイベントには問題ないと思いますが、そうでないかどうかはすぐにわかります!

于 2012-08-10T11:01:48.387 に答える