Example #1
0
        protected async override Task <JObject[]> ExecuteAsync(AsyncCodeActivityContext context)
        {
            var ignoreErrors = IgnoreErrors.Get(context);
            var collection   = Collection.Get(context);
            var querystring  = QueryString.Get(context);
            var projection   = Projection.Get(context);
            var top          = Top.Get(context);
            var skip         = Skip.Get(context);

            if (top < 1)
            {
                top = 100;
            }
            if (skip < 0)
            {
                skip = 0;
            }
            var orderby = Orderby.Get(context);

            if (string.IsNullOrEmpty(collection))
            {
                collection = "entities";
            }
            JObject[] result = null;
            result = await global.webSocketClient.Query <JObject>(collection, querystring, projection, top, skip, orderby);

            System.Windows.Forms.Application.DoEvents();
            return(result);
        }
Example #2
0
        protected override void OnOpen()
        {
            DeviceId = QueryString.Get("device_id");
            var isReconnect = _manager.DeviceIds.Contains(DeviceId);

            if (!isReconnect)
            {
                _manager.DeviceIds.Add(DeviceId);
            }

            _manager.ClientSockets.Add(this);
            Debug.Log($"User connected: DeviceId: {DeviceId} IsReconnect: {isReconnect}");
            UnityMainThreadDispatcher.Instance().Enqueue(() => _manager.OnPlayerConnect?.Invoke(this, isReconnect));
        }
Example #3
0
        public void QueryString_Get_KeyNotFound_EmptyString()
        {
            //------------Setup for test--------------------------
            var items = new List <KeyValuePair <string, string> > {
                new KeyValuePair <string, string>("key", "value1; value2")
            };

            var queryString = new QueryString(items);

            //------------Execute Test---------------------------
            var values = queryString.Get("key1");

            //------------Assert Results-------------------------
            Assert.AreEqual(string.Empty, values);
        }
Example #4
0
        protected async override Task <JObject[]> ExecuteAsync(AsyncCodeActivityContext context)
        {
            var ignoreErrors = IgnoreErrors.Get(context);
            var collection   = Collection.Get(context);
            var querystring  = QueryString.Get(context);

            if (string.IsNullOrEmpty(collection))
            {
                collection = "entities";
            }
            JObject[] result = null;
            result = await global.webSocketClient.Query <JObject>(collection, querystring);

            System.Windows.Forms.Application.DoEvents();
            return(result);
        }
Example #5
0
        public void BasicOperations()
        {
            var qs = new QueryString();

            qs.Set("key", "value");
            Assert.AreEqual("value", qs.Get("key"));
            Assert.AreEqual("value", qs["key"]);
            Assert.AreEqual("value", qs.TryGet("key", "default"));
            Assert.AreEqual("default", qs.TryGet("nonexistingkey", "default"));

            Assert.IsTrue(qs.Contains("key"));
            qs.Remove("key");
            Assert.IsFalse(qs.Contains("key"));

            qs["key"] = "value";
            Assert.IsTrue(qs.Contains("key"));
        }
Example #6
0
        public string Get()
        {
            var query = "";

            if (QueryString.Count != 0)
            {
                query = "?";
                for (var i = 0; i <= QueryString.Count - 1; i++)
                {
                    if (i != 0)
                    {
                        query += "&";
                    }
                    query += QueryString.GetKey(i) + "=" + QueryString.Get(i);
                }
            }
            return(query);
        }
Example #7
0
        public string Remove(params Facet[] facets)
        {
            var qs = new QueryString(_initialQuery);

            foreach (var facet in facets)
            {
                var parts = GetQueryParts(facet);
                foreach (var name in parts.AllKeys)
                {
                    var qsName = name;

                    if (!qs.AllKeys.Contains(name))
                    {
                        // Query string does not contain that name. Try the unmapped name.
                        switch (facet.FacetGroup.Kind)
                        {
                        case FacetGroupKind.Attribute:
                            qsName = "attr" + facet.Value.ParentId;
                            break;

                        case FacetGroupKind.Variant:
                            qsName = "vari" + facet.Value.ParentId;
                            break;

                        case FacetGroupKind.Category:
                        case FacetGroupKind.Brand:
                        case FacetGroupKind.Price:
                        case FacetGroupKind.Rating:
                        case FacetGroupKind.DeliveryTime:
                        case FacetGroupKind.Availability:
                        case FacetGroupKind.NewArrivals:
                            qsName = _queryNames[facet.FacetGroup.Kind];
                            break;
                        }
                    }

                    string[] currentValues = null;

                    // The query string value is not necessarily equal to the facet value.
                    // We must skip subsequent lines here to not add the removed value again and again.
                    if (facet.FacetGroup.Kind != FacetGroupKind.Price &&
                        facet.FacetGroup.Kind != FacetGroupKind.Availability &&
                        facet.FacetGroup.Kind != FacetGroupKind.NewArrivals)
                    {
                        currentValues = qs.Get(qsName)?.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray();
                    }

                    qs.Remove(qsName);

                    if (currentValues != null)
                    {
                        var removeValues = parts.GetValues(name);
                        var newValues    = currentValues.Except(removeValues).ToArray();
                        if (newValues.Length > 0)
                        {
                            newValues.Each(x => qs.Add(name, x, false));
                        }
                    }
                }
            }

            return(_url + qs.ToString(false));
        }