private void HandleEventUpdate(D2LogicalModel d2LogicalModel) { lock (LockEventUpdates) { try { SituationPublication situationPublication = (SituationPublication)d2LogicalModel.payloadPublication; if (situationPublication != null) { Situation[] situations = situationPublication.situation; log.Info(NumberOfEventsInPayload + situations.Length); foreach (Situation situation in situations) { // Only have 1 situationRecord per situation (index=0) processEventData(situation); } } } catch (Exception e) { log.Error(e.Message); } } }
private void ProcessEventsInFullRefresh(D2LogicalModel request, Dictionary <String, SituationRecord> tempEventCache) { SituationPublication situationPublication = (SituationPublication)request.payloadPublication; if (situationPublication != null) { Situation[] situations = situationPublication.situation; log.Info(NumberOfEventsInPayload + situations.Length); foreach (Situation situation in situations) { RefreshEvent(situation.situationRecord[0], tempEventCache); } } }
public void Handle(D2LogicalModel deliverEventDataRequest) { log.Info("New EventData received."); // Validate the D2Logical Model if (!ExampleDataCheckOk(deliverEventDataRequest)) { throw new SoapException("Incoming request does not appear to be valid!", SoapException.ClientFaultCode); } SituationPublication situationPublication = null; try { situationPublication = (SituationPublication)deliverEventDataRequest.payloadPublication; if (situationPublication != null) { Situation[] situations = situationPublication.situation; log.Info("Number of Events in payload: " + situations.Length); foreach (Situation situation in situations) { // Only have 1 situationRecord per situation (index=0) SituationRecord situationRecord = situation.situationRecord[0]; // Different types of event/situation record contain some common information and // some type-specific data items and should be handled accordingly processCommonEventData(situationRecord); if (situationRecord.GetType() == typeof(MaintenanceWorks)) { processMaintenanceWorksEvent((MaintenanceWorks)situationRecord); } } log.Info("EventData: processed successfully."); } } catch (Exception e) { log.Error(e.Message); } }
public override void processMessage(D2LogicalModel d2LogicalModel) { if (logWrapper.isDebug()) { logWrapper.Debug("Event Update"); } bool fullRefresh = false; String feedType = d2LogicalModel.payloadPublication.feedType; if (feedType.ToLower().Contains(fullRefreshText)) { logWrapper.Info("Event Full Refresh received"); fullRefresh = true; lock (eventDataStore){ eventDataStore.clearDataStore(); } } SituationPublication situationPublication = (SituationPublication)d2LogicalModel.payloadPublication; DateTime publicationTime = situationPublication.publicationTime; if (situationPublication != null) { Situation[] situationList = situationPublication.situation; if (logWrapper.isDebug()) { logWrapper.Debug("Event Update(" + situationList.Length + " objects)"); } for (int situationListPos = 0; situationListPos < situationList.Length; situationListPos++) { Situation situation = situationList[situationListPos]; processSituation(situation, publicationTime, fullRefresh); } } if (logWrapper.isDebug()) { logWrapper.Debug("Event Update Complete"); } }