public void CallTheDataProvider(ICollection<IPointToLaceProvider> response)
        {
            try
            {
                _certificate =
                    new CoOrdinateCertificateFactory(
                        new CoOrdinateCertificateRequest(GetValidLatitudeCoordinate(_dataProvider.GetRequest<IAmJisRequest>().Latitude),
                            GetValidLongitudeCoordinate(_dataProvider.GetRequest<IAmJisRequest>().Latitude)),
                        _repository);

                _logCommand.LogConfiguration(new {Certficate = _certificate}, null);

                if (!_certificate.IsSuccessfull || _certificate.Certificate == null || string.IsNullOrEmpty(_certificate.Certificate.Endpoint))
                    throw new Exception("Certificate for JIS request could not be generated");

                var proxy = new JisWsInterfaceSoapClient(_certificate.Certificate.Endpoint);
                if (proxy.State == CommunicationState.Closed)
                    proxy.Open();

                proxy.Connect();

                var session = new SessionManager(proxy, _log, _dataProvider.GetRequest<IAmJisRequest>()).Build().SessionManagement;
                var request = new BuildJisRequest(_dataProvider.GetRequest<IAmJisRequest>()).JisRequest;

                _logCommand.LogRequest(new ConnectionTypeIdentifier(proxy.Endpoint.Address.Uri.ToString()).ForWebApiType(), new {request, session});

                _jisResponse = proxy.DataStoreQuery(session.Id, request, _dataProvider.GetRequest<IAmJisRequest>().UserName.Field);

                if (_jisResponse.IsHot)
                {
                    _sightingUpdate =
                        new SightingUpdate(_dataProvider.GetRequest<IAmJisRequest>(), _jisResponse).BuildRequest()
                            .Update(proxy, session)
                            .SightingUpdateResult;
                }

                proxy.Close();

                _logCommand.LogResponse(_jisResponse != null ? DataProviderState.Successful : DataProviderState.Failed,
                    new ConnectionTypeIdentifier(proxy.Endpoint.Address.Uri.ToString()).ForWebApiType(), new {_jisResponse});

                TransformResponse(response);

            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Error calling Jis Web Service {0}",ex, ex.Message);
                _logCommand.LogFault(new {ex.Message}, new {ErrorMessage = "Error calling JIS Web Service"});
                JisResponseFailed(response);
            }
        }
        public void CallTheDataProvider(ICollection<IPointToLaceProvider> response)
        {
            try
            {

                _certificate =
                    new CoOrdinateCertificateFactory(
                        new CoOrdinateCertificateRequest(GetValidLatitudeCoordinate(_dataProvider.GetRequest<IAmAnprRequest>().Latitude),
                            GetValidLongitudeCoordinate(_dataProvider.GetRequest<IAmAnprRequest>().Latitude)),
                        _repository);

                _logCommand.LogConfiguration(new {Certficate = _certificate}, null);

                if (!_certificate.IsSuccessfull || _certificate.Certificate == null || string.IsNullOrEmpty(_certificate.Certificate.Endpoint))
                    throw new Exception("Certificate for ANPR request could not be generated");

                var proxy = new AnprServiceSoapClient(_certificate.Certificate.Endpoint);
                if (proxy.State == CommunicationState.Closed)
                    proxy.Open();

                var builder = new BuildAnprRequest(_dataProvider.GetRequest<IAmAnprRequest>()).Build();

                _logCommand.LogRequest(new ConnectionTypeIdentifier(proxy.Endpoint.Address.Uri.ToString()).ForWebApiType(), new { builder.AnprRequest });

                _anprResponse = proxy.AnprProcessRecognition(builder.AnprRequest);

                proxy.Close();

                _logCommand.LogResponse(_anprResponse != null ? DataProviderState.Successful : DataProviderState.Failed,
                    new ConnectionTypeIdentifier(proxy.Endpoint.Address.Uri.ToString()).ForWebApiType(), new { builder.AnprRequest });

                TransformResponse(response);

            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Error calling Anpr Web Service {0}",ex, ex.Message);
                _logCommand.LogFault(new {ex.Message}, new {ErrorMessage = "Error calling Anpr Web Service"});
                AnprResponseFailed(response);
            }
        }