internal static string ToStringType(this NumberMatcherTypes numberMatcherTypes)
        {
            switch (numberMatcherTypes)
            {
            case NumberMatcherTypes.GraterThan: return("->gt");

            case NumberMatcherTypes.GraterThanOrEqual: return("->gte");

            case NumberMatcherTypes.LessThan: return("->lt");

            case NumberMatcherTypes.LessThanOrEqual: return("->lte");

            default: throw new ArgumentOutOfRangeException(nameof(numberMatcherTypes), numberMatcherTypes, null);
            }
        }
        /// <summary>
        ///     the NumberMatcher Aggregation
        /// </summary>
        /// <param name="name">the name of Element you want to Match it</param>
        /// <param name="numberValue">the numberValue of Element you want to Match it</param>
        /// <param name="matcherType">The Type of Number Match</param>
        public NumberMatcher(string name, object numberValue, NumberMatcherTypes matcherType)
        {
            _name = string.IsNullOrEmpty(name)
                ? throw new GameServiceException("Name Cant Be EmptyOrNull").LogException <NumberMatcher>(
                              DebugLocation.Internal, "Constructor")
                : _name = name;

            if (!DBaaSUtil.ValidateNumber(numberValue))
            {
                throw new GameServiceException("NumberValue Must Be Have Number Type").LogException <NumberMatcher>(
                          DebugLocation.Internal, "Constructor");
            }

            _numberValue = numberValue == null
                ? throw new GameServiceException("Value Cant Be Null").LogException <NumberMatcher>(
                                     DebugLocation.Internal, "Constructor")
                : _numberValue = numberValue;
            _type = matcherType;
        }