/* 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);
     }
 }
コード例 #2
0
ファイル: EventDataService.cs プロジェクト: AndreaAnge/SC2015
        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);
            }
        }