public GetRequest CreateRequest(JsonOperationContext ctx)
        {
            StringBuilder pathBuilder = null;

            if (_keys != null)
            {
                foreach (var key in _keys)
                {
                    if (_clusterSession.IsTracked(key))
                    {
                        continue;
                    }

                    if (pathBuilder == null)
                    {
                        pathBuilder = new StringBuilder("?");
                    }

                    pathBuilder.Append("&key=").Append(Uri.EscapeDataString(key));
                }
            }
            else
            {
                pathBuilder = new StringBuilder("?");

                if (string.IsNullOrEmpty(_startsWith) == false)
                {
                    pathBuilder.Append("&startsWith=").Append(Uri.EscapeDataString(_startsWith));
                }

                pathBuilder.Append("&start=").Append(_start);
                pathBuilder.Append("&pageSize=").Append(_pageSize);
            }

            if (pathBuilder == null)
            {
                Result = _clusterSession.GetCompareExchangeValuesFromSessionInternal <T>(_keys, out _);
                return(null);
            }

            return(new GetRequest
            {
                Url = "/cmpxchg",
                Method = HttpMethods.Get,
                Query = pathBuilder.ToString()
            });
        }
Esempio n. 2
0
        public GetRequest CreateRequest(JsonOperationContext ctx)
        {
            if (_clusterSession.IsTracked(_key))
            {
                Result = _clusterSession.GetCompareExchangeValueFromSessionInternal <T>(_key, out _);
                return(null);
            }

            var queryBuilder = new StringBuilder("?key=")
                               .Append(Uri.EscapeDataString(_key));

            return(new GetRequest
            {
                Url = "/cmpxchg",
                Method = HttpMethods.Get,
                Query = queryBuilder.ToString()
            });
        }