Ejemplo n.º 1
0
 public override bool TrackClick(string clickId, string contentId, WebtrekkParametersCollection additionalParameters)
 {
     using (var pool = new NSAutoreleasePool()) {
         Thread thread = new Thread(TrackClickThread);
         thread.Priority = ThreadPriority.AboveNormal;
         thread.Start(new object[] { clickId, contentId, additionalParameters });
     }
     return(true);
 }
Ejemplo n.º 2
0
        private void TrackClickThread(object dataObject)
        {
            object[] data      = (object[])dataObject;
            string   clickId   = (string)data[0];
            string   contentId = (string)data[1];
            WebtrekkParametersCollection additionalParameters = null;

            if (data.Length > 2)
            {
                additionalParameters = (WebtrekkParametersCollection)data[2];
            }

            if (this._tracker != null)
            {
                try {
                    if (additionalParameters != null)
                    {
                        SystemLogger.Log(SystemLogger.Module.PLATFORM, "Webtrekk Tracking click [" + clickId + "-" + contentId + " - additional parameters]");
                        NSDictionary dict = ParametersCollectionToDictionary(additionalParameters);

                        UIApplication.SharedApplication.InvokeOnMainThread(delegate {
                            try {
                                this._tracker.TrackClick(clickId, contentId, dict);
                                SystemLogger.Log(SystemLogger.Module.PLATFORM, "Webtrekk click TRACKED [" + clickId + "-" + contentId + " with additional parameters]");
                            } catch (Exception e) {
                                SystemLogger.Log(SystemLogger.Module.PLATFORM, "Error tracking click with additional parameters", e);
                            }
                        });
                    }
                    else
                    {
                        SystemLogger.Log(SystemLogger.Module.PLATFORM, "Webtrekk Tracking click [" + clickId + "-" + contentId + "]");
                        UIApplication.SharedApplication.InvokeOnMainThread(delegate {
                            try {
                                this._tracker.TrackClick(clickId, contentId);
                                SystemLogger.Log(SystemLogger.Module.PLATFORM, "Webtrekk click TRACKED [" + clickId + "-" + contentId + "]");
                            } catch (Exception e) {
                                SystemLogger.Log(SystemLogger.Module.PLATFORM, "Error tracking click", e);
                            }
                        });
                    }
                } catch (Exception e) {
                    SystemLogger.Log(SystemLogger.Module.PLATFORM, "Couldn't track Webtrekk click", e);
                }
            }
        }
Ejemplo n.º 3
0
 private NSDictionary ParametersCollectionToDictionary(WebtrekkParametersCollection paramCollection)
 {
     try {
         NSDictionary dict   = null;
         string[]     keys   = new string[paramCollection.AdditionalParameters.Length];
         string[]     values = new string[paramCollection.AdditionalParameters.Length];
         for (int i = 0; i < paramCollection.AdditionalParameters.Length; i++)
         {
             keys [i]   = paramCollection.AdditionalParameters [i].Name;
             values [i] = paramCollection.AdditionalParameters [i].Value;
         }
         dict = NSDictionary.FromObjectsAndKeys(values, keys);
         return(dict);
     } catch (Exception e) {
         SystemLogger.Log(SystemLogger.Module.PLATFORM, "Error parsing Webtrekk Additional Parameters", e);
         return(null);
     }
 }