private void GetYAxisValueDictionary(List <string> seriesNameList, List <MetricMeter> selectResult, AggregationWay aggregationWay, Dictionary <string, Series> dictionary)
        {
            foreach (string seriesName in seriesNameList)
            { // start: foreach (string seriesName in seriesNameList)
                if (!dictionary.ContainsKey(seriesName))
                {
                    dictionary.Add(seriesName, new Series()
                    {
                        Name = seriesName
                    });
                }

                double yAxisValue = 0;
                if (selectResult == null || selectResult.Count < 1)
                {
                    dictionary[seriesName].YAxisValueList.Add(Math.Round(yAxisValue, 2));
                    continue;
                }

                // if(selectResult != null && selectResult.Count > 0):
                IEnumerable <MetricMeter> info = selectResult.Where <MetricMeter>(m => m.SeriesName == seriesName);
                if (info != null && info.Any())
                {
                    switch (aggregationWay)
                    {
                    case AggregationWay.COUNT:
                        yAxisValue = info.Sum(y => y.YAxisValueForCOUNT);
                        break;

                    case AggregationWay.SUM:
                        yAxisValue = info.Sum(y => y.YAxisValueForSUM);
                        break;

                    case AggregationWay.MAX:
                        yAxisValue = info.Max(y => y.YAxisValueForMAX);
                        break;

                    case AggregationWay.MIN:
                        yAxisValue = info.Min(y => y.YAxisValueForMIN);
                        break;

                    case AggregationWay.AVG:
                        yAxisValue = info.Sum(y => y.YAxisValueForCOUNT);
                        yAxisValue = yAxisValue == 0 ? yAxisValue : 1.00 * info.Sum(y => y.YAxisValueForSUM) / yAxisValue;
                        break;
                    }
                }
                dictionary[seriesName].YAxisValueList.Add(Math.Round(yAxisValue, 2));
            } // end: foreach (string seriesName in seriesNameList)
        }
        /// <summary>
        /// 聚合SeriesName数据
        /// </summary>
        /// <param name="selectResult">所有记录数</param>
        /// <param name="seriesName"></param>
        /// <param name="aggregationWay">聚合方式</param>
        /// <returns>Result</returns>
        private double GetSeriesValue(List <MetricHistogram> selectResult, string seriesName, AggregationWay aggregationWay)
        {
            double num = 0;

            if (selectResult != null)
            {
                IEnumerable <MetricHistogram> enumInfo = selectResult.Where(m => m.SeriesName == seriesName);
                if (enumInfo != null && enumInfo.Any())
                {
                    switch (aggregationWay)
                    {
                    case AggregationWay.COUNT: num = enumInfo.Sum(y => y.ValueCount); break;

                    case AggregationWay.SUM: num = enumInfo.Sum(y => y.ValueSum); break;

                    case AggregationWay.MAX: num = enumInfo.Max(y => y.ValueMax); break;

                    case AggregationWay.MIN: num = enumInfo.Min(y => y.ValueMin); break;

                    case AggregationWay.AVG:
                        num = enumInfo.Sum(y => y.ValueCount);
                        num = num == 0 ? num : 1.00 * enumInfo.Sum(y => y.ValueSum) / num;
                        break;
                    }
                }
            }
            return(num);
        }