/* Different types of event/situation record contain some common information * and some type-specific data items and should be handled accordingly * @param situationRecord */ private void ProcessEventData(SituationRecord situationRecord) { ProcessCommonEventData(situationRecord); if (typeof(MaintenanceWorks) == (situationRecord.GetType())) { ProcessMaintenanceWorksEvent((MaintenanceWorks)situationRecord); } }
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); } }