Beispiel #1
0
 public virtual TimelineEvents GetEntityTimelines(string entityType, ICollection <string
                                                                                  > entityIds, long limit, long windowStart, long windowEnd, ICollection <string> eventTypes
                                                  )
 {
     lock (this)
     {
         TimelineEvents allEvents = new TimelineEvents();
         if (entityIds == null)
         {
             return(allEvents);
         }
         if (limit == null)
         {
             limit = DefaultLimit;
         }
         if (windowStart == null)
         {
             windowStart = long.MinValue;
         }
         if (windowEnd == null)
         {
             windowEnd = long.MaxValue;
         }
         foreach (string entityId in entityIds)
         {
             EntityIdentifier entityID = new EntityIdentifier(entityId, entityType);
             TimelineEntity   entity   = entities[entityID];
             if (entity == null)
             {
                 continue;
             }
             TimelineEvents.EventsOfOneEntity events = new TimelineEvents.EventsOfOneEntity();
             events.SetEntityId(entityId);
             events.SetEntityType(entityType);
             foreach (TimelineEvent @event in entity.GetEvents())
             {
                 if (events.GetEvents().Count >= limit)
                 {
                     break;
                 }
                 if (@event.GetTimestamp() <= windowStart)
                 {
                     continue;
                 }
                 if (@event.GetTimestamp() > windowEnd)
                 {
                     continue;
                 }
                 if (eventTypes != null && !eventTypes.Contains(@event.GetEventType()))
                 {
                     continue;
                 }
                 events.AddEvent(@event);
             }
             allEvents.AddEvent(events);
         }
         return(allEvents);
     }
 }