/// <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;
        }
 public async Task <List <TItem> > GetTableItems <TItem>(string tableId, bool isGlobal = false,
                                                         TableOption[] options         = null) where TItem : TableItemHelper
 {
     if (!isGlobal && !GameService.IsAuthenticated())
     {
         throw new GameServiceException("GameService Not Available").LogException(typeof(TableProvider),
                                                                                  DebugLocation.Internal, "GetTableItems");
     }
     if (string.IsNullOrEmpty(tableId))
     {
         throw new GameServiceException("TableId Cant Be EmptyOrNull").LogException(typeof(TableProvider),
                                                                                    DebugLocation.Internal, "GetTableItems");
     }
     if (!DBaaSUtil.ValidateOptions(options))
     {
         throw new GameServiceException("Invalid TabletOptions").LogException(typeof(TableProvider),
                                                                              DebugLocation.Internal, "GetTableItems");
     }
     return(await ApiRequest.GetTableItems <TItem>(tableId, isGlobal, options));
 }