private void WriteCommonPersonValues(JsonWriter writer, PersonEventBase personEvent) { writer.WritePropertyName("$token"); writer.WriteValue(personEvent.ProjectToken); writer.WritePropertyName("$distinct_id"); writer.WriteValue(personEvent.DistinctUserId); if (personEvent.Options.MaskIpAddress) { writer.WritePropertyName("$ip"); writer.WriteValue(0); } else if (!String.IsNullOrEmpty(personEvent.IpAddress)) { writer.WritePropertyName("$ip"); writer.WriteValue(personEvent.IpAddress); } if (personEvent.EventTime.HasValue) { writer.WritePropertyName("$time"); writer.WriteAsMillisecondsSinceEpochBase(personEvent.EventTime.Value); } if (personEvent.IgnoreTime.HasValue) { writer.WritePropertyName("$ignore_time"); writer.WriteValue(personEvent.IgnoreTime.Value); } }
public override void Send(PersonEventBase personEvent) { HttpWebRequest request = GetRequest(personEvent); IAsyncResult result = request.BeginGetResponse(new AsyncCallHandler(request, //this.Log, this.HandleResponse).HandleAsyncCallback, null); }
public virtual String GetJson(PersonEventBase personEvent) { String returnValue = null; var sb = new StringBuilder(); using (var sw = new StringWriter(sb)) { using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.None; if (personEvent is PersonSetEvent) { this.WriteSetJson(writer, (PersonSetEvent)personEvent); } else if (personEvent is PersonSetOnceEvent) { this.WriteSetOnceJson(writer, (PersonSetOnceEvent)personEvent); } else if (personEvent is PersonTransactionEvent) { this.WriteTrackChargeJson(writer, (PersonTransactionEvent)personEvent); } else if (personEvent is PersonIncrementEvent) { this.WriteIncrementJson(writer, (PersonIncrementEvent)personEvent); } } returnValue = sb.ToString(); } return(returnValue); }
protected virtual HttpWebRequest GetRequest(PersonEventBase personEvent) { JsonSerializer jsonSerializer = new JsonSerializer(); String data = jsonSerializer.GetJson(personEvent); //if (this.Log != null) //{ // this.Log.DebugFormat("Json Data: {0}", data); //} data = Base64Encode(data); StringBuilder sb = new StringBuilder(); sb.AppendFormat(PersonUrlTemplate, data); if (personEvent.Options.TestMode) { sb.Append("&test=1"); } if (personEvent.Options.MaskIpAddress) { sb.Append("&ip=1"); } if (personEvent.Options.Verbose) { sb.Append("&verbose=1"); } HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(sb.ToString()); request.Method = "GET"; return(request); }
public override void Send(PersonEventBase personEvent) { HttpWebRequest request = GetRequest(personEvent); IAsyncResult result = request.BeginGetResponse(null, null); result.AsyncWaitHandle.WaitOne(); HandleResponse(request, result); }
public virtual void Send(PersonEventBase personEvent) { var eventSender = this.ApiCaller ?? new AsyncApiCaller();// {Log = this.Log}; eventSender.Send(personEvent); }
public abstract void Send(PersonEventBase personEvent);