/// <summary>
        /// Successful FindMarker request callback function.
        /// </summary>
        /// <param name="response">FindMarker response.</param>
        public void FindMarkerCallbackOK(WSMarkerResponse response)
        {
            DateTime now    = DateTime.Now.ToUniversalTime();
            Marker   marker = new Marker(response.data.markerId,
                                         response.data.markerDescriptor,
                                         response.data.markerCustomData,
                                         DateTime.Parse(response.data.markerUpdateDate),
                                         now, now,
                                         DateTime.Parse(response.data.publishedFrom),
                                         DateTime.Parse(response.data.publishedTo),
                                         response.data.cacheEnabled,
                                         new MarkerDatabase(response.data.markerDatabase.id,
                                                            response.data.markerDatabase.code,
                                                            response.data.markerDatabase.customData,
                                                            response.data.markerDatabase.cloud,
                                                            now, now),
                                         response.data.arLogoEnabled);

            string appdatapath = RecognitionManager.GetAppDataPath();
            Thread thread      = new Thread(() => SaveLocalMarkerThread(marker, true, true, appdatapath, true));

            thread.Start();
            //SaveLocalMarker(marker, true, true);

            _findMarkerRequestRunning = false;
            Thread thread2 = new Thread(() => _dataProviderListener.FindMarkerCallback(marker));

            thread2.Start();
            //_dataProviderListener.FindMarkerCallback(marker);
        }
        /// <summary>
        /// Successful GetMarker request callback function.
        /// </summary>
        /// <param name="response">GetMarker response.</param>
        public void GetMarkerCallbackOK(WSMarkerResponse response)
        {
            DateTime now         = DateTime.Now.ToUniversalTime();
            Marker   cloudMarker = new Marker(response.data.markerId,
                                              response.data.markerDescriptor,
                                              response.data.markerCustomData,
                                              DateTime.Parse(response.data.markerUpdateDate),
                                              now, now,
                                              DateTime.Parse(response.data.publishedFrom),
                                              DateTime.Parse(response.data.publishedTo),
                                              response.data.cacheEnabled,
                                              new MarkerDatabase(response.data.markerDatabase.id,
                                                                 response.data.markerDatabase.code,
                                                                 response.data.markerDatabase.customData,
                                                                 response.data.markerDatabase.cloud,
                                                                 now, now),
                                              response.data.arLogoEnabled);

            if (cloudMarker.IsPublished())
            {
                if (cloudMarker.markerDescriptor != null)
                {
                    SaveLocalMarker(cloudMarker, true, _cachedMarker != null, true);
                }
                else
                {
                    _localRecognitionService.SaveMarker(cloudMarker, _cachedMarker != null);
                }

                _cachedMarker = cloudMarker;
                _dataProviderListener.GetMarkerCallback(_cachedMarker);
            }
            else
            {
                if (_cachedMarker != null)
                {
                    _localRecognitionService.DeleteMarker(_cachedMarker.markerId);
                }
                _cachedMarker = null;
            }

            _getMarkerRequestRunning = false;
        }