/// <inheritdoc/> public override AnalysisValueIntermediateResult ResultWithArgumentRowContextValueContext(JsValue argument, AnalysisProcessingQueryResultRowExecutionContext rowContext, AnalysisProcessingValueExecutionContext valueContext) { AnalysisResultCounter resultCounter; if (!string.IsNullOrEmpty(rowContext.XCategoryKey)) { resultCounter = valueContext.ContextForYCategoryValueXCategoryValue(rowContext.YCategoryKey, rowContext.XCategoryKey) as AnalysisResultCounter; } else { resultCounter = valueContext.ContextForYCategoryValue(rowContext.YCategoryKey) as AnalysisResultCounter; } if (resultCounter == null) { resultCounter = new AnalysisResultCounter(); if (!string.IsNullOrEmpty(rowContext.XCategoryKey)) { valueContext.SetContextForYCategoryValueXCategoryValue(resultCounter, rowContext.YCategoryKey, rowContext.XCategoryKey); } else { valueContext.SetContextForYCategoryValue(resultCounter, rowContext.YCategoryKey); } } resultCounter.AddValue(JavascriptEngine.DoubleForValue(argument)); return(new AnalysisValueIntermediateResultDelayed(resultCounter, rowContext)); }
/// <inheritdoc/> public override AnalysisValueIntermediateResult ResultWithArgumentRowContextValueContext(JsValue argument, AnalysisProcessingQueryResultRowExecutionContext rowContext, AnalysisProcessingValueExecutionContext valueContext) { var resultCounter = valueContext.ContextForYCategoryValue("all") as AnalysisResultCounter; if (resultCounter == null) { resultCounter = new AnalysisResultCounter(); valueContext.SetContextForYCategoryValue(resultCounter, "all"); } resultCounter.AddValue(JavascriptEngine.DoubleForValue(argument)); return(new AnalysisValueIntermediateResultDelayed(resultCounter, rowContext)); }
/// <inheritdoc/> public override AnalysisValueIntermediateResult ResultWithArgumentRowContextValueContext(JsValue argument, AnalysisProcessingQueryResultRowExecutionContext rowContext, AnalysisProcessingValueExecutionContext valueContext) { AnalysisResultCounter resultCounter = valueContext.ContextForYCategoryValue(rowContext.YCategoryKey) as AnalysisResultCounter; if (resultCounter == null) { resultCounter = new AnalysisResultCounter(); valueContext.SetContextForYCategoryValue(resultCounter, rowContext.YCategoryKey); } string strValue = JavascriptEngine.StringForValue(argument); if (strValue.Length > 0 && resultCounter.ObjectForKey(strValue) == null) { resultCounter.SetObjectForKey(strValue, strValue); resultCounter.AddValue(1); } return(new AnalysisValueIntermediateResultDelayed(resultCounter, rowContext)); }
/// <inheritdoc/> public override AnalysisValueIntermediateResult ResultWithArgumentRowContextValueContext(JsValue argument, AnalysisProcessingQueryResultRowExecutionContext rowContext, AnalysisProcessingValueExecutionContext valueContext) { double val; string key; object valueObject; JavascriptEngine engine = JavascriptEngine.Current; var arr = JavascriptEngine.ArrayForValue(argument); if (arr == null) { val = JavascriptEngine.DoubleForObject(argument); key = null; } else { if (arr.Count > 1) { valueObject = arr[1]; if (valueObject is string) { key = (string)valueObject; } else { key = $"{valueObject}"; } valueObject = arr[0]; } else if (arr.Count == 1) { valueObject = arr[0]; key = "const"; } else { return(new AnalysisValueIntermediateResult(0)); } if (valueObject is int || valueObject is string) { val = valueObject.ToDouble(); } else { val = 0; } } var resultCounter = valueContext.ContextForYCategoryValue(rowContext.YCategoryKey) as AnalysisResultCounter; if (resultCounter == null) { resultCounter = new AnalysisResultCounter(); valueContext.SetContextForYCategoryValue(resultCounter, rowContext.YCategoryKey); } if (key == null) { resultCounter.AddValue(val); } else { var num = resultCounter.ObjectForKey(key); if (num == null) { resultCounter.AddValue(val); resultCounter.SetObjectForKey(1, key); } else { resultCounter.SetObjectForKey(num.ToInt() + 1, key); } } return(new AnalysisValueIntermediateResultDelayed(resultCounter, rowContext)); }