public DeliverAverageSpeedFusedDataResponse GetDeliverAverageSpeedFusedDataResponse(DeliverAverageSpeedFusedDataRequest deliverAverageSpeedFusedDataRequest)
        {
            log.Info("New DeliverAverageSpeedFusedDataRequest received.");

            D2LogicalModel d2LogicalModel = deliverAverageSpeedFusedDataRequest.d2LogicalModel;
            FusedDataPublication fusedDataPublication = null;

            // Validate D2LogicalModel
            if (!ExampleDataCheckOk(d2LogicalModel))
            {
                throw new SoapException("Incoming request does not appear to be valid!", SoapException.ClientFaultCode);
            }

            // FusedDataPublication contains the journey time, direction, code, region, etc.
            try
            {
                fusedDataPublication = (FusedDataPublication)d2LogicalModel.payloadPublication;

                if (fusedDataPublication != null && fusedDataPublication.fusedData[0] != null)
                {
                    log.Info(string.Format("CreatedUTC is {0}", fusedDataPublication.fusedData[0].createdUtc));
                    // You could use the FusedDataPublication and extract the corresponding fields
                    ProcessedTrafficData[] trafficData = fusedDataPublication.fusedData[0].linkData;
                    if (trafficData.Count() > 0)
                    {
                        log.Info(string.Format("speedKph {0}",trafficData[0].speedKph));
                    }


                }

            }
            catch (Exception e)
            {
                log.Error("Error while obtaining FusedDataPublication.");
                log.Error(e.Message);
                throw new SoapException("Error while obtaining FusedDataPublication.", SoapException.ServerFaultCode, e);
            }

            DeliverAverageSpeedFusedDataResponse response = new DeliverAverageSpeedFusedDataResponse();
            response.status = "DeliverAverageSpeedFusedDataRequest: Successful Delivery";

            return response;
        }
        public void CheckErrorInGetDeliverAverageSpeedFusedDataResponseTest()
        {
            IAverageSpeedFusedDataService averageSpeedFusedData = new AverageSpeedFusedDataService();
            DeliverAverageSpeedFusedDataRequest deliverAverageSpeedFusedDataRequest = new DeliverAverageSpeedFusedDataRequest();

            model = null; // This will be checked by ExampleDataCheckOk(d2LogicalModel)

            deliverAverageSpeedFusedDataRequest.d2LogicalModel = model;
            string expected = "DeliverAverageSpeedFusedDataRequest: Successful Delivery";
            string actual;
            // This should cause a SoapException
            actual = (averageSpeedFusedData.GetDeliverAverageSpeedFusedDataResponse(deliverAverageSpeedFusedDataRequest)).status;

            Assert.AreEqual(expected, actual);
        }
        public void CheckValidGetDeliverAverageSpeedFusedDataResponseTest()
        {
            IAverageSpeedFusedDataService averageSpeedFusedData = new AverageSpeedFusedDataService();
            DeliverAverageSpeedFusedDataRequest deliverAverageSpeedFusedDataRequest = new DeliverAverageSpeedFusedDataRequest();
            deliverAverageSpeedFusedDataRequest.d2LogicalModel = model;
            string expected = "DeliverAverageSpeedFusedDataRequest: Successful Delivery";
            string actual;
            actual = (averageSpeedFusedData.GetDeliverAverageSpeedFusedDataResponse(deliverAverageSpeedFusedDataRequest)).status;

            Assert.AreEqual(expected, actual);
        }