Finde alle gemeinsamen Zeiten aus der Liste der von jedem Benutzer zur Verfügung gestellten Zeit

8

Ich hatte diese Frage zuvor. Die Idee ist dieselbe, außer dass ich die gesamte gemeinsame Zeit innerhalb bestimmter TimeSpan finden muss.

Hintergrund

Nehmen wir an,

Ich möchte einige Leute treffen und ich sage, dass ich bestimmte Leute zwischen Datetime X (2014-02-16 09: 00: 00.000) und DateTime Y (2014-02-26 05: 00: 00.000) treffen möchte. Und ich sage, dass ich möchte, dass das Meeting mindestens für N Stundenzahl hält.

Dann werden die Leute, die ich treffen will, antworten und sagen, dass ich in folgenden Daten verfügbar sein werde:

%Vor%

und so weiter.

Ziel

Ich muss dann herausfinden, ob es einen Zeitbereich gibt, der die Antwort des Benutzers enthält.

Nehmen wir an, dies sind die Antworten

  

Attendee1 (einige GuidId):

     

Antwort1: Startzeit = 2014-02-23 09:00 Uhr, Endzeit = 2014-02-23 11:00   AM,

     

Antwort2: Startzeit = 2014-02-24 10:00 AM, EndTime = 2014-02-24 12:00   PM,

     

Antwort3: Startzeit = 2014-02-25 10:00 Uhr, Endzeit = 2014-02-25 11:00   AM,

     

Response4: Startzeit = 2014-02-23 01:00 PM, EndTime = 2014-02-17 5:00   PM

     

Attendee2 (einige GuidId):

     

Antwort1: Startzeit = 2014-02-22 09:00 AM, EndTime = 2014-02-22 05:00   PM,

     

Antwort2: Startzeit = 2014-02-23 09:00 Uhr, Endzeit = 2014-02-23 05:00   PM,

     

Antwort3: Startzeit = 2014-02-25 09:00 Uhr, Endzeit = 2014-02-25 12:00   PM,

     

Attendee3 (einige GuidId):

     

Antwort1: Startzeit = 2014-02-22 11:00 AM, EndTime = 2014-02-22 02:00   PM,

     

Antwort2: Startzeit = 2014-02-23 04:00 PM, EndTime = 2014-02-23 03:00   PM,

     

Antwort3: Startzeit = 2014-02-23 4:30 PM, EndTime = 2014-02-23 05:30   PM,

     

Response4: Startzeit = 2014-02-24 02:00 AM, EndTime = 2014-02-24 05:00   PM,

     

Antwort5: Startzeit = 2014-02-25 11:00 Uhr, Endzeit = 2014-02-25 12:00 Uhr   PM,

Also, wenn möglich, sollte ich etwas finden, das sagt, dass hier die gefundenen Übereinstimmungen sind, wenn nicht, dann finde einfach heraus, ob die gemeinsame Zeit für alle Benutzer existiert oder nicht.

Time X to Time Y (Der Unterschied zwischen X und Y sollte mindestens der angegebene TimeSpan sein): Number of Attendee in this match = N (type = int, 1 oder 2 oder so viele Übereinstimmung wie gefunden)

%Vor%

...

usw.

PS:

Es handelt sich um eine MVC 5.1-Anwendung, und die Datenbank wird mithilfe des ersten Ansatzes erstellt. Also in der Datenbank gibt es eine Tabelle namens Termin, die die StartDateTime und EndDateTime

speichert

Hier sind meine DataModels

%Vor%

und zwischen diesen Terminen geben Leute (Teilnehmer) ihre Antwort ab. Jede Person (die antworten wird), ihre Informationen werden in der Datenbanktabelle Attendees

gespeichert %Vor%

Und für jeden Benutzer wird seine Antwort in der Antworttabelle gespeichert, deren Modell wie

aussehen würde %Vor%

Das habe ich gemacht, aber es funktioniert nicht.

%Vor%

Also in diesem Fall, wenn Attendee X (mit einer Guid Id) seine / ihre Verfügbarkeit angibt

und Attendee Y geben ihre Verfügbarkeit als

Das ist die übliche Übereinstimmung, die ich bekomme

Was ich nicht will, wie ich es erklärt habe.

Also, was soll ich tun, um zu bekommen, was ich will.

Bearbeiten:

Basierend auf der Antwort von Zache

%Vor%

in Repository

%Vor%

StartDate : 2/24/2014 11:30:00 AM //, das ich beim Erstellen eines Termins festgelegt habe

Enddatum : 2/25/2014 11:30:00 AM

Wenn der erste Benutzer mit folgenden Daten antwortet:

entspricht dem Ergebnis:

wenn der zweite Teilnehmer mit folgenden Daten antwortet

entspricht dem Ergebnis

Hier sollten die üblichen Übereinstimmungen gewesen sein:

%Vor%     
Cybercop 21.02.2014, 10:21
quelle

1 Antwort

6

Die folgende Funktion GetMeetingWindows gibt eine Liste aller übereinstimmenden Fenster und verfügbaren Teilnehmer zurück. Vollständige oder minimale Teilnehmerbestimmungen können dann wie erforderlich auf das Ergebnis angewendet werden, z.

%Vor%

Ich habe angenommen, dass die gelieferten Teilnehmerantworten den Gesamtzeitraum für das Meeting bereits berücksichtigt haben, aber wenn dies nicht der Fall ist, kann diese Einschränkung als zusätzlicher Teilnehmer hinzugefügt werden, der dann im Ergebnis gefiltert wird. zB

%Vor%

Der Code:

%Vor%     
stovroz 25.02.2014, 02:11
quelle

Tags und Links