private void processSituation(ElaboratedData elaboratedData, DateTime publicationTime, DateTime timeDefault) { LocationByReference locationByReference = null; BasicData basicData = elaboratedData.basicData; if (basicData.GetType() == typeof(TrafficHeadway)) { TrafficHeadway data = (TrafficHeadway)basicData; locationByReference = (LocationByReference)data.pertinentLocation; } else if (basicData.GetType() == typeof(TrafficFlow)) { TrafficFlow data = (TrafficFlow)basicData; locationByReference = (LocationByReference)data.pertinentLocation; } else if (basicData.GetType() == typeof(TrafficConcentration)) { TrafficConcentration data = (TrafficConcentration)basicData; locationByReference = (LocationByReference)data.pertinentLocation; } else if (basicData.GetType() == typeof(TrafficSpeed)) { TrafficSpeed data = (TrafficSpeed)basicData; locationByReference = (LocationByReference)data.pertinentLocation; } else if (basicData.GetType() == typeof(TravelTimeData)) { TravelTimeData data = (TravelTimeData)basicData; locationByReference = (LocationByReference)data.pertinentLocation; } else { logWrapper.Warning("basicData instance of -" + basicData.GetType().ToString()); } String linkIdentifier = null; if (locationByReference != null) { linkIdentifier = basicData.GetType().ToString() + locationByReference.predefinedLocationReference.id; if (logWrapper.isTrace()) { logWrapper.Trace("Processing Fused Sensor Only Identifier(" + linkIdentifier + ")"); } FusedSensorOnlyData fusedSensorOnlyData = new FusedSensorOnlyData(linkIdentifier, publicationTime, timeDefault, elaboratedData); fusedSensorOnlyDataStore.updateData(fusedSensorOnlyData); } else { logWrapper.Error("Failed to Process elaboratedData, " + elaboratedData.ToString()); } }