Exemplo n.º 1
0
 private static void invokeResultCallback(KiiResultCallback callback, string ruleId, ResultCondition condition, GroupedResult result, Exception e)
 {
     if (callback != null)
     {
         callback(ruleId, condition, result, e);
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Asynchronously retrieve analytics result.
 /// </summary>
 /// <remarks>
 /// This API will send a request to Kii Cloud.
 /// </remarks>
 /// <param name='ruleId'>
 /// Rule identifier. Must not be null.
 /// </param>
 /// <param name='condition'>
 /// Condition.
 /// </param>
 /// <param name='callback'>
 /// KiiResultCallback.
 /// </param>
 /// <exception cref='ArgumentException'>
 /// Is thrown when ruleId is null or empty.
 /// </exception>
 public static void GetResult(string ruleId, ResultCondition condition, KiiResultCallback callback)
 {
     if (Utils.IsEmpty(ruleId))
     {
         throw new ArgumentException(ErrorInfo.KIIANALYTICS_RULE_ID_NULL);
     }
     ExecGetResult(ruleId, condition, KiiAnalytics.AsyncHttpClientFactory, callback);
 }
Exemplo n.º 3
0
        private static void ExecGetResult(string ruleId, ResultCondition condition, KiiHttpClientFactory factory, KiiResultCallback callback)
        {
            string url = KiiAnalytics.BaseUrl + "/apps/" + KiiAnalytics.AppID + "/analytics/" + ruleId + "/data";

            if (condition != null)
            {
                url += "?" + condition.ToQueryString();
            }

            KiiHttpClient client = factory.Create(url, KiiAnalytics.AppID, KiiAnalytics.AppKey, KiiHttpMethod.GET);

            client.Accept = "application/vnd.kii.GroupedAnalyticResult+json";
            client.SendRequest((ApiResponse response, Exception e) => {
                if (e != null)
                {
                    invokeResultCallback(callback, ruleId, condition, null, e);
                    return;
                }
                try {
                    JsonObject obj       = new JsonObject(response.Body);
                    JsonArray snapshots  = obj.GetJsonArray("snapshots");
                    GroupedResult result = GroupedResult.Parse(snapshots);
                    invokeResultCallback(callback, ruleId, condition, result, null);
                } catch (JsonException) {
                    Exception ex = new IllegalKiiBaseObjectFormatException("Server response is broken.");
                    invokeResultCallback(callback, ruleId, condition, null, ex);
                }
            });
        }