private void processPredefinedLocationContainer(PredefinedLocationContainer predefinedLocationContainer, DateTime publicationTime)
 {
     if (predefinedLocationContainer.GetType() == typeof(PredefinedItinerary))
     {
         PredefinedItinerary predefinedItinerary = (PredefinedItinerary)predefinedLocationContainer;
         string predefinedLocationContainerId    = predefinedItinerary.id;
         _PredefinedItineraryIndexPredefinedLocation[] predefinedLocationList = predefinedItinerary.predefinedLocation;
         for (int predefinedLocationListPos = 0; predefinedLocationListPos < predefinedLocationList.Length; predefinedLocationListPos++)
         {
             _PredefinedItineraryIndexPredefinedLocation predefinedItineraryIndexPredefinedLocation = predefinedLocationList[predefinedLocationListPos];
             processPredefinedLocation(predefinedItineraryIndexPredefinedLocation.predefinedLocation, publicationTime, predefinedLocationContainerId);
         }
     }
     else if (predefinedLocationContainer.GetType() == typeof(PredefinedNonOrderedLocationGroup))
     {
         PredefinedNonOrderedLocationGroup predefinedNonOrderedLocationGroup = (PredefinedNonOrderedLocationGroup)predefinedLocationContainer;
         string predefinedLocationContainerId        = predefinedNonOrderedLocationGroup.id;
         PredefinedLocation[] predefinedLocationList = predefinedNonOrderedLocationGroup.predefinedLocation;
         for (int predefinedLocationListPos = 0; predefinedLocationListPos < predefinedLocationList.Length; predefinedLocationListPos++)
         {
             PredefinedLocation predefinedLocation = predefinedLocationList[predefinedLocationListPos];
             processPredefinedLocation(predefinedLocation, publicationTime, predefinedLocationContainerId);
         }
     }
     else
     {
         logWrapper.Error("Unexpected data type for PredefinedLocationContainer: " + predefinedLocationContainer.GetType().ToString());
         return;
     }
 }
        public override void processMessage(D2LogicalModel d2LogicalModel)
        {
            if (logWrapper.isDebug())
            {
                logWrapper.Debug("NTIS Model Predefined Location Update");
            }

            linkShapeStaticDataStore.clearDataStore();
            nwkLinkStaticDataStore.clearDataStore();
            anprRouteStaticDataStore.clearDataStore();
            hatrisSectionStaticDataStore.clearDataStore();
            nwkNodeStaticDataStore.clearDataStore();
            alternateRouteStaticDataStore.clearDataStore();

            PredefinedLocationsPublication predefinedLocationsPublication = (PredefinedLocationsPublication)d2LogicalModel.payloadPublication;

            if (predefinedLocationsPublication != null)
            {
                DateTime publicationTime = predefinedLocationsPublication.publicationTime;

                PredefinedLocationContainer[] predefinedLocationContainerList = predefinedLocationsPublication.predefinedLocationContainer;

                for (int predefinedLocationContainerListPos = 0; predefinedLocationContainerListPos < predefinedLocationContainerList.Length; predefinedLocationContainerListPos++)
                {
                    PredefinedLocationContainer predefinedLocationContainer = predefinedLocationContainerList[predefinedLocationContainerListPos];
                    processPredefinedLocationContainer(predefinedLocationContainer, publicationTime);
                }
            }

            if (logWrapper.isDebug())
            {
                logWrapper.Debug("NTIS Model Predefined Location Update Complete");
            }
        }