public void AddData(TransactionInfo data)
        {
            _listData.Add(data);

            foreach (var calculateDefinition in this._listCalculateDefinition)
            {
                double value = Convert.ToDouble(
                    calculateDefinition.CalculateMethod.GetValue(data, null));

                _sumValues[calculateDefinition] += value;
            }
        }
        public bool PerformCheck(TransactionInfo transactionDetail)
        {
            var checkOk = true;
            if (FilterProps != null)
            {
                for (int i = 0; i < FilterProps.Count && checkOk; i++)
                {
                    var filterProp = FilterProps[i];
                    if (filterProp.FilterValue != null)
                    {
                        checkOk = filterProp.FilterValue.Equals(
                            filterProp.FilterMethod.GetValue(transactionDetail, null));
                    }
                }
            }

            return checkOk;
        }
        private string GetDataGroupKey(GroupingDefinition groupingDefinition, TransactionInfo data)
        {
            if (groupingDefinition == null)
            {
                return string.Empty;
            }

            StringBuilder builder = new StringBuilder();
            builder.Append(groupingDefinition.GetKeyMethod.GetValue(data, null));
            if (groupingDefinition.UpperDefinition != null)
            {
                builder.Append(",");
                string upperKey = GetDataGroupKey(groupingDefinition.UpperDefinition, data);
                builder.Append(upperKey);
            }

            return builder.ToString();
        }
        private CombineDataKey GetDataCombineGroupKey(Combine2DDimensionGroupingDefinition combineGroupingDefinition,
                                       TransactionInfo data)
        {
            CombineDataKey combineDataKey = new CombineDataKey()
            {
                XKey = GetDataGroupKey(combineGroupingDefinition.XDefinition, data),
                YKey = GetDataGroupKey(combineGroupingDefinition.YDefinition, data),
            };

            return combineDataKey;
        }
        public static string GetItemKey(PropertyInfo getKeyMethod, TransactionInfo data)
        {
            object value = getKeyMethod.GetValue(data, null);
            string itemKey = (value == null ? string.Empty : value.ToString());

            return itemKey;
        }