/// <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));
        }
Exemple #3
0
        /// <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));
        }
Exemple #4
0
        /// <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));
        }