/// <summary> /// Initiates a session by setting begin_session /// </summary> public string BeginSession() { _lastSessionRequestTime = DateTime.Now; //if (ConsentModel.CheckConsent(FeaturesEnum.Sessions.ToString())) //{ var requestParams = new Dictionary <string, object> { { "begin_session", 1 }, { "ignore_cooldown", IgnoreSessionCooldown } }; requestParams.Add("metrics", JsonConvert.SerializeObject(CountlyMetricModel.Metrics, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore })); if (!string.IsNullOrEmpty(IPAddress)) { requestParams.Add("ip_address", IPAddress); } _requestString = CountlyHelper.BuildRequest(requestParams); var response = CountlyHelper.GetResponse(_requestString); //Extend session only after session has begun _timer.Start(); //} return(response); }
/// <summary> /// Ends a session by setting end_session /// </summary> public string EndSession() { //if (ConsentModel.CheckConsent(FeaturesEnum.Sessions.ToString())) //{ var requestParams = new Dictionary <string, object> { { "end_session", 1 }, { "session_duration", (DateTime.Now - _lastSessionRequestTime).Seconds }, { "ignore_cooldown", IgnoreSessionCooldown.ToString().ToLower() } }; requestParams.Add("metrics", JsonConvert.SerializeObject(CountlyMetricModel.Metrics, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore })); _requestString = CountlyHelper.BuildRequest(requestParams); var response = CountlyHelper.GetResponse(_requestString); //Do not extend session after session ends _timer.Stop(); _timer.Dispose(); _timer.Close(); //} return(response); }
/// <summary> /// Sends details regarding crash /// </summary> /// <param name="message"></param> /// <param name="stackTrace"></param> /// <param name="type"></param> public string SendCrashReport(string message, string stackTrace, LogType type, string customParams, bool nonfatal = false) { //if (ConsentModel.CheckConsent(FeaturesEnum.Crashes.ToString())) //{ var model = CountlyExceptionDetailModel.ExceptionDetailModel; model.Error = stackTrace; model.Name = message; model.Nonfatal = nonfatal; model.Custom = customParams; #if UNITY_IOS model._manufacture = iPhone.generation.ToString(), #endif #if UNITY_ANDROID model.Manufacture = SystemInfo.deviceModel; #endif var requestParams = new Dictionary <string, object> { { "crash", JsonConvert.SerializeObject(model, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }) } }; _requestString = CountlyHelper.BuildRequest(requestParams); return(CountlyHelper.GetResponse(_requestString)); //} }
/// <summary> /// Ends a particular event /// </summary> /// <returns></returns> public bool End() { if (string.IsNullOrEmpty(Key)) { throw new ArgumentNullException(Key, "Key is required."); } var addedEvent = Countly.TotalEvents.Where(evnt => Key.Equals(evnt.Key, StringComparison.OrdinalIgnoreCase)) .FirstOrDefault(); if (string.IsNullOrEmpty(addedEvent.Key)) { throw new Exception($"Event {Key} doesn't exists. Please add an event first."); } Duration = Duration ?? (DateTime.Now - addedEvent.Value).TotalMilliseconds; var requestParams = new Dictionary <string, object> { { "events", JsonConvert.SerializeObject(this, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }) }, }; var requestString = CountlyHelper.BuildRequest(requestParams); CountlyHelper.GetResponse(requestString); //Removing the event Countly.TotalEvents.Remove(Key); return(true); }
internal static bool StartMultipleEvents(string events) { var requestParams = new Dictionary <string, object> { { "events", events }, }; var requestString = CountlyHelper.BuildRequest(requestParams); CountlyHelper.GetResponse(requestString); return(true); }
internal static bool StartMultipleEvents(List <CountlyEventModel> events) { var requestParams = new Dictionary <string, object> { { "events", JsonConvert.SerializeObject(events, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }) }, }; var requestString = CountlyHelper.BuildRequest(requestParams); CountlyHelper.GetResponse(requestString); return(true); }
/// <summary> /// Extends a session by another 60 seconds /// </summary> public string ExtendSession() { _lastSessionRequestTime = DateTime.Now; //if (ConsentModel.CheckConsent(FeaturesEnum.Sessions.ToString())) //{ var requestParams = new Dictionary <string, object> { { "session_duration", 60 }, { "ignore_cooldown", IgnoreSessionCooldown.ToString().ToLower() } }; requestParams.Add("metrics", JsonConvert.SerializeObject(CountlyMetricModel.Metrics, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore })); _requestString = CountlyHelper.BuildRequest(requestParams); return(CountlyHelper.GetResponse(_requestString)); //} }
internal bool ReportCustomEvent() { if (string.IsNullOrEmpty(Key)) { throw new ArgumentNullException(Key, "Key is required."); } var requestParams = new Dictionary <string, object> { { "events", JsonConvert.SerializeObject(this, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }) }, }; var requestString = CountlyHelper.BuildRequest(requestParams); CountlyHelper.GetResponse(requestString); return(true); }