Example #1
0
        public void Receive(string endpointName, JArray events)
        {
            JArray processedArray;

            if (this.client.IsConnected == false)
            {
                this.client.Connect(ClientID, AuthUsername, AuthPassword);
            }

            if (this.client.IsConnected == true)
            {
                if (!IsBatch)
                {
                    //Process and transmit all records individually
                    processedArray = new JArray();
                    foreach (JObject inputObject in events.Cast <JObject>())
                    {
                        JObject processedObject = UseNestedObject ? ProcessComplexObject(inputObject) : inputObject;
                        client.Publish(this.Topic, Encoding.UTF8.GetBytes(processedObject.ToString()), QualityOfService, false);
                        processedArray.Add(processedObject);
                    }
                }
                else
                {
                    //Process and transmit all records at once
                    processedArray = UseNestedObject ? JArray.FromObject(events.Cast <JObject>().Select(inputObject => ProcessComplexObject(inputObject))) : events;
                    client.Publish(this.Topic, Encoding.UTF8.GetBytes(processedArray.ToString()), QualityOfService, false);
                }

                //Always send all records to the next stream object at once
                this.OnPublish?.Invoke(this, new OnPublishArgs(processedArray, "Output"));
            }

            JObject ProcessComplexObject(JObject inputObject)
            {
                JObject dataRecord = new JObject(inputObject);
                Dictionary <string, object> outputDict = new Dictionary <string, object>();

                //Remove requested fields from the record and attach to a temporary dictionary
                foreach (var(source, alias) in ComplexObjectAliases)
                {
                    outputDict.Add(alias, dataRecord[source]);
                    dataRecord.Remove(source);
                }

                //Turn the dictionary into the requested complex object (either an object or an array)
                JToken complexObject = NestedObjectAsArray ? (JToken)JArray.FromObject(outputDict.Values) : JObject.FromObject(outputDict);

                dataRecord.Add(this.config[ObjectNameParam], complexObject);

                return(dataRecord);
            }
        }
 /// <summary>
 /// Helper function to parse a <see cref="List{T}"/> of <see cref="List{T}"/> of <see cref="List{T}"/> of <see cref="Position"/>.
 /// </summary>
 /// <param name="array">
 /// Get JSON from this.
 /// </param>
 /// <returns>
 /// The parsed JSON.
 /// </returns>
 /// <exception cref="ArgumentException">
 /// Unexpected JSON.
 /// </exception>
 public static List <List <List <Position> > > ParseListListListPosition(JArray array)
 {
     if (array.Cast <JArray>().Any(p => p.Cast <JArray>().Any(r => r.Cast <JArray>().Any(l => l.Count < 2))))
     {
         throw new ArgumentException(
                   string.Format(
                       "Expected all points to have greater than two points, got {0} with zero and {1} with one",
                       array.Cast <JArray>().Sum(p => p.Cast <JArray>().Sum(r => r.Cast <JArray>().Count(l => l.Count == 0))),
                       array.Cast <JArray>().Sum(p => p.Cast <JArray>().Sum(r => r.Cast <JArray>().Count(l => l.Count == 1)))),
                   "array");
     }
     return(array.Select(p => p.Select(r => r.Select(l => new Position {
         P1 = (double)l[0], P2 = (double)l[1]
     }).ToList()).ToList()).ToList());
 }
Example #3
0
        private string MapPropertyValueIdToNames(JArray jArray)
        {
            foreach (var item in jArray.Cast <JObject>())
            {
                var fieldSets = GetArray(item, "fieldSets");
                foreach (var fieldSet in fieldSets.Cast <JObject>())
                {
                    var containers = GetArray(fieldSet, "containers");
                    foreach (var container in containers.Cast <JObject>())
                    {
                        var fields = GetArray(container, "fields");
                        foreach (var field in fields.Cast <JObject>())
                        {
                            var attempt = GetObjectValue <Guid>(field, "prevalueSourceId");
                            if (attempt && attempt.Result != Guid.Empty)
                            {
                                var prevalue = syncFormService.GetPreValueSource(attempt.Result);
                                if (prevalue != null)
                                {
                                    field["prevalueSourceId"] = prevalue.Name;
                                }
                            }
                        }
                    }
                }
            }

            return(jArray.ToString(Formatting.Indented));
        }
        internal UserProfilePhotosInfo(JObject jsonObject)
        {
            TotalCount = jsonObject["total_count"].Value <int>();
            JArray arrayOfArrays = jsonObject["photos"].Value <JArray>();

            Photos = arrayOfArrays.Cast <JArray>().Select(PhotoSizeInfo.ParseArray).ToArray();
        }
Example #5
0
        private void CheckSend(int trackMessagesCount, int engageMessagesCount)
        {
            // Track
            var trackSplits          = GetSplits(trackMessagesCount, BatchMessageWrapper.MaxBatchSize);
            var trackHttpPostEntries = HttpPostEntries.Where(x => x.Endpoint == TrackUrl).ToList();

            Assert.That(trackHttpPostEntries.Count, Is.EqualTo(trackSplits.Count));
            for (int i = 0; i < trackHttpPostEntries.Count; i++)
            {
                JArray msg = ParseBatchMessageData(trackHttpPostEntries[i].Data);
                Assert.That(msg.Count, Is.EqualTo(trackSplits[i]));
                foreach (JObject msgPart in msg.Cast <JObject>())
                {
                    AssertTrackJson(msgPart);
                }
            }

            // Engage
            var engageSplits          = GetSplits(engageMessagesCount, BatchMessageWrapper.MaxBatchSize);
            var engageHttpPostEntries = HttpPostEntries.Where(x => x.Endpoint == EngageUrl).ToList();

            Assert.That(engageHttpPostEntries.Count, Is.EqualTo(engageSplits.Count));
            for (int i = 0; i < engageHttpPostEntries.Count; i++)
            {
                JArray msg = ParseBatchMessageData(engageHttpPostEntries[i].Data);
                Assert.That(msg.Count, Is.EqualTo(engageSplits[i]));
                foreach (JObject msgPart in msg.Cast <JObject>())
                {
                    AssertPeopleSetJson(msgPart);
                }
            }

            Assert.That(HttpPostEntries.Count, Is.EqualTo(trackSplits.Count + engageSplits.Count));
        }
        private static DataFrame ToDataFrame(JArray obj)
        {
            var dataFrame = new DataFrame();

            var data = new Dictionary <string, List <object> >();

            foreach (var row in obj.Cast <JObject>())
            {
                foreach (var property in row)
                {
                    if (!data.TryGetValue(property.Key, out var list))
                    {
                        list = new List <object>();
                    }
                    list.Add(((JValue)property.Value).Value);
                }
            }

            foreach (var item in data)
            {
                dataFrame.Columns.Add(new Vector <object>(item.Value, item.Key));
            }

            return(dataFrame);
        }
Example #7
0
        public static void Main(string[] args)
        {
            Person[] people = GetPeople();
            // Query 1: OK BUT NO CORRECT -> Accesso puntato al campo "age"
            var attempt_1 = people.Where(x => x.age == 20);

            // Query 2: NOT OK, BREAKS -> Accesso mediante stringa al campo "age"
            // SPIEGAZIONE: funziona normalmente se accedo al campo di un oggetto mediante notazione puntata
            //var attempt_2 = people.Where(x => x["age"] == 20);

            // Query 3: NOT OK, DOESN'T BREAK but returns no data
            // SPIEGAZIONE: non posso convertire direttamente una struttura in dynamic per usarvi poi su LINQ
            IEnumerable <dynamic> attempt_3_ = people.Cast <dynamic>();
            var attempt_3 = attempt_3_.Where(x => x["age"] == 20);

            // Query 4: OK!
            // SPEIGAZIONE: per compiere query su una struttura
            // usando linq potendo operare su un qualsiasi cmapo,
            // occorre applicare linq alla stessa struttura dati ma
            // serializzata, così da NON essere più vincolato
            // dai tipi. Lo si fa:
            //  -> serializzare la struttura in un JArray
            //  -> castare il JArray ad IEnumerable<dynamic>
            //  -> eseguo la query con LINQ
            //  -> mappo il risultato nelle istanze della classe che componeva la struttura originale

            JArray arr = JArray.FromObject(people);
            IEnumerable <dynamic> attempt_4_ = arr.Cast <dynamic>();
            var attempt_4a = attempt_4_.Where(x => x["age"] == 20); // OK

            Person[] people_filter_a = Person.DeserialPeople(attempt_4a);
            var      attempt_4b      = attempt_4_.Where(x => x["birth"] == new DateTime(1970, 1, 1)); // OK

            Person[] people_filter_b = Person.DeserialPeople(attempt_4b);
        }
Example #8
0
        /// <summary>
        /// 反序列化指定的数组为一个实体的列表。
        /// </summary>
        /// <param name="listType"></param>
        /// <param name="jArray"></param>
        /// <returns></returns>
        public EntityList DeserializeList(Type listType, JArray jArray)
        {
            var entityType = EntityMatrix.FindByList(listType).EntityType;
            var repo       = RF.Find(entityType);

            //构造或查询出数据对应的实体列表。
            EntityList list = null;

            if (_creationMode == UpdatedEntityCreationMode.RequeryFromRepository)
            {
                //先从数据库中找出所有提供了 Id 的实体。
                var idList = jArray.Cast <JObject>().Select(item => TryGetId(item))
                             .Where(id => id != null).ToArray();
                list = repo.GetByIdList(idList);
            }
            else
            {
                list = repo.NewList();
            }

            //依次反序列化数组中的实体:
            //如果有 Id,则在数据库中查询出的列表 list 中查找出对应的实体,然后反序列化值。否则,直接构造新实体。
            for (int i = 0, c = jArray.Count; i < c; i++)
            {
                var jEntity = jArray[i] as JObject;
                var child   = FindOrCreate(list, jEntity);
                DeserializeProperties(jEntity, child);
            }

            return(list);
        }
Example #9
0
        private void Parse(JObject jsonObject)
        {
            TotalCount = jsonObject["total_count"].Value <int>();
            JArray arrayOfArrays = jsonObject["photos"].Value <JArray>();

            Photos = arrayOfArrays.Cast <JArray>().Select(PhotoSizeInfo.ParseArray).ToArray();
        }
 /// <inheritdoc/>
 public override void ParseJson(JArray array)
 {
     if (array.Cast <JArray>().Any(l => l.Count < 2))
     {
         throw new ArgumentException(
                   string.Format(
                       "Expected all points to have greater than two points, got {0} with zero and {1} with one",
                       array.Cast <JArray>().Count(l => l.Count == 0),
                       array.Cast <JArray>().Count(l => l.Count == 1)),
                   "array");
     }
     this.Points = array.Cast <JArray>().Select(l => new Point {
         Position = new Position {
             P1 = (double)l[0], P2 = (double)l[1]
         }
     }).ToList();
 }
Example #11
0
 private IEnumerable <string> jarrayToStringCollection(JArray jArray)
 {
     Debug.Assert(jArray != null);
     return(jArray
            .Cast <JToken>()
            .Where(token => token.Type == JTokenType.String)
            .Select(token => token.Value <string>()));
 }
Example #12
0
        private string GetBestLanguageMatch(JArray literalArray)
        {
            if (_prefLang == null)
            {
                // Just the first object with an @value property
                return(literalArray
                       .Cast <JObject>()
                       .Select(o => o["@value"] as JValue)
                       .FirstOrDefault()
                       ?.Value <string>());
            }

            JObject bestMatch      = null;
            var     bestMatchCount = -2;
            var     prefToks       = _prefLang.Split('-');

            foreach (var tok in literalArray)
            {
                if (!(tok is JObject litObj))
                {
                    continue;
                }
                var lang       = litObj["@language"]?.Value <string>();
                var matchCount = 0;
                if (lang != null)
                {
                    var langToks = lang.Split('-');
                    for (var i = 0; i < Math.Min(langToks.Length, prefToks.Length); i++)
                    {
                        if (langToks[i].Equals(prefToks[i], StringComparison.InvariantCultureIgnoreCase))
                        {
                            matchCount += 2;
                        }
                        else
                        {
                            break;
                        }
                    }
                }
                else
                {
                    // With no language code, count as a simple match
                    matchCount = 1;
                }

                if (matchCount > bestMatchCount)
                {
                    bestMatchCount = matchCount;
                    bestMatch      = litObj;
                    if (bestMatchCount == (prefToks.Length * 2))
                    {
                        // Exit early on a perfect match
                        break;
                    }
                }
            }
            return(bestMatch?["@value"]?.Value <string>());
        }
Example #13
0
        /// <summary>
        /// Gets the value with key.
        /// </summary>
        /// <param name="key">Json key</param>
        /// <returns><see cref="Dictionary{TKey,TValue}">TKey is country, TValue is value key in param</see></returns>
        internal static Dictionary <string, string> GetValueWithKey(string key, bool needParseArray = false)
        {
            JArray jArray = GetDeserealizeObject(mCountriesUri);

            return(jArray.Cast <JObject>().
                   ToDictionary(
                       keys => keys["name"]["common"].ToString(),
                       keys => keys[key].ToString()));
        }
Example #14
0
 public void BaseLoad(JArray jsonArray) =>
 this.MenuItems = jsonArray?.Cast <JObject>()
                  .Select(v =>
 {
     var child = new MenuItem
     {
         Menu = this,
     };
     child.Load(v);
     return(child);
 }).ToArray();
        public static async Task <JObject[]> GetPosts(long startId)
        {
            using (HttpClient client = new HttpClient())
            {
                string url        = GetPostsUrl(startId);
                string jsonString = await client.GetStringAsync(url);

                JArray jsonArray = JArray.Parse(jsonString);

                return(jsonArray.Cast <JObject>().ToArray());
            }
        }
            private object InferType(JArray array)
            {
                JValue firstTypedValue = array.Cast <JValue>().FirstOrDefault(x => x.Value != null);

                if (firstTypedValue == null)
                {
                    return(new List <object>());
                }
                Type type     = firstTypedValue.Value.GetType();
                Type listType = typeof(List <>).MakeGenericType(type);

                return(array.ToObject(listType));
            }
Example #17
0
 /// <summary>
 /// Converts a valid <see cref="JArray"/> to a collection of <see cref="OperatorStats"/>, to be used when requesting operator data
 /// </summary>
 public static IEnumerable <OperatorStats> FromArray(JArray data) =>
 data.Cast <JObject>().Select(element => new OperatorStats
 {
     ImageURL         = element.GetString("img"),
     Name             = element.GetString("name"),
     Organisation     = element.GetString("org"),
     Index            = element.GetString("index"),
     Subtitle         = element.GetString("sub"),
     Type             = (OperatorType)element.GetInt("type"),
     OperatorActionId = element.GetString("actn"),
     Action           = element.GetString("phrase"),
     Order            = element.GetUShort("ord")
 });
Example #18
0
        public static async Task <JObject[]> GetPosts(long startId)
        {
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("User-Agent", "E621AutoTag/0.1 (by checkium)");
                string url        = GetPostsUrl(startId);
                string jsonString = await client.GetStringAsync(url);

                dynamic posts     = JObject.Parse(jsonString);
                JArray  jsonArray = posts.posts;

                return(jsonArray.Cast <JObject>().ToArray());
            }
        }
Example #19
0
        /// <summary>
        /// Builds classes from a provided JArray object
        /// </summary>
        /// <param name="entityClasses"></param>
        /// <returns></returns>
        private Dictionary <string, JObject> BuildClasses(JArray entityClasses)
        {
            // Copy unbuilt classes to a dictionary
            var tempDictionary = entityClasses.Cast <JObject>().ToDictionary(x => (string)x["Class"], x => x);

            // Dictionary for storing the built classes
            var result = new Dictionary <string, JObject>();

            // Iterate over the unbuilt classes
            foreach (var className in tempDictionary.Keys)
            {
                BuildClass(className, tempDictionary, result);
            }
            return(result);
        }
        public async Task GetHostKeys_DelaysUntilHostInitialized()
        {
            TestWebHookExtension.Initializing = false;
            TestWebHookExtension.Delay        = 2000;

            try
            {
                // reset secrets to ensure the extension secret is not yet added
                var testSecretManager = (TestSecretManager)_testHost.JobHostServices.GetService <ISecretManagerProvider>().Current;
                testSecretManager.Reset();

                // initiate a restart and a keys request concurrently
                var keysRequest = new HttpRequestMessage(HttpMethod.Get, "http://localhost/admin/host/systemkeys");
                keysRequest.Headers.Add(AuthenticationLevelHandler.FunctionsKeyHeaderName, TestSecretManager.TestMasterKey);
                JObject keysContent = null;
                var     keysTask    = Task.Run(async() =>
                {
                    // wait until the test extension has begun initialization - this way we know
                    // host initialization is in progress
                    await TestHelpers.Await(() =>
                    {
                        return(!TestWebHookExtension.Initializing);
                    });

                    // make the keys request while during initialization BEFORE the extension
                    // has had a chance to create the extension system key
                    var response = await _testHost.HttpClient.SendAsync(keysRequest);
                    Assert.Equal(HttpStatusCode.OK, response.StatusCode);
                    keysContent = await response.Content.ReadAsAsync <JObject>();
                });

                var restartTask = _testHost.RestartAsync(CancellationToken.None);

                await Task.WhenAll(restartTask, keysTask);

                // verify the extension system key is present
                JArray keys         = (JArray)keysContent["keys"];
                var    extensionKey = (JObject)keys.Cast <JObject>().SingleOrDefault(p => (string)p["name"] == "testwebhook_extension");
                Assert.NotNull(extensionKey);
                string extensionKeyValue = (string)extensionKey["value"];
                Assert.False(string.IsNullOrEmpty(extensionKeyValue));
            }
            finally
            {
                TestWebHookExtension.Initializing = false;
                TestWebHookExtension.Delay        = 0;
            }
        }
Example #21
0
        internal static List <SensorLocationModel> ParseLocations(string responseBody)
        {
            List <SensorLocationModel> sensorList = new List <SensorLocationModel>();
            JArray locations = JArray.Parse(responseBody);

            foreach (var sensor in locations.Cast <JObject>())
            {
                var sensorLocation = new SensorLocationModel(
                    (string)sensor["x"],
                    (string)sensor["y"],
                    (string)sensor["id"]
                    );
                sensorList.Add(sensorLocation);
            }
            logger.Info("Json data parsed into c# objects successfully!");
            return(sensorList);
        }
        /// <summary>
        /// Gets the zone settings for the zone with the specified <paramref name="zoneId"/>.
        /// </summary>
        /// <seealso href="https://api.cloudflare.com/#zone-settings-get-all-zone-settings"/>
        public static async Task <IEnumerable <ZoneSettingBase> > GetAllZoneSettingsAsync(
            this HttpClient client,
            IdentifierTag zoneId,
            CancellationToken cancellationToken,
            CloudFlareAuth auth)
        {
            if (zoneId == null)
            {
                throw new ArgumentNullException(nameof(zoneId));
            }

            Uri uri = new Uri(CloudFlareConstants.BaseUri, $"zones/{zoneId}/settings");

            JArray jsonSettings = await client.GetCloudFlareResultAsync <JArray>(uri, auth, cancellationToken)
                                  .ConfigureAwait(false);

            return(GetZoneSetting(jsonSettings.Cast <JObject>()));
        }
Example #23
0
 public static void Capitalize(this JArray jArr)
 {
     foreach (var x in jArr.Cast <JToken>().ToList())
     {
         var childObj = x as JObject;
         if (childObj != null)
         {
             childObj.Capitalize();
             continue;
         }
         var childArr = x as JArray;
         if (childArr != null)
         {
             childArr.Capitalize();
             continue;
         }
     }
 }
Example #24
0
        private BunqEntity[] GetEntities(JArray response)
        {
            var entities = new List <BunqEntity>();

            foreach (var element in response.Cast <JObject>())
            {
                var property      = (JProperty)element.First;
                var propertyValue = (JObject)property.Value;

                var type = EntityTypeCollection.FindByName(property.Name);

                var entity = (BunqEntity)propertyValue.ToObject(type);
                entity.ApiClient = this;

                entities.Add(entity);
            }

            return(entities.ToArray());
        }
Example #25
0
        private EntityList DeserializeList(Type listType, JArray jArray)
        {
            var entityType = EntityMatrix.FindByList(listType).EntityType;
            var repo       = RF.Find(entityType);

            //先从数据库中找出所有提供了 Id 的实体。
            var idList = jArray.Cast <JObject>().Select(item => TryGetId(item))
                         .Where(id => id != null).ToArray();
            var list = repo.GetByIdList(idList);

            //依次反序列化数组中的实体:
            //如果有 Id,则在数据库中查询出的列表 list 中查找出对应的实体,然后反序列化值。否则,直接构造新实体。
            foreach (JObject jEntity in jArray)
            {
                var child = FindOrCreate(list, jEntity);
                DeserializeProperties(jEntity, child);
            }

            return(list);
        }
Example #26
0
 public IEnumerable <Object[]> GetData(MethodInfo methodInfo)
 {
     using (TextReader streamReader = File.OpenText(FileName))
     {
         using (JsonReader jsonReader = new JsonTextReader(streamReader))
         {
             JObject jDataInfo = JObject.Load(jsonReader);
             _displayNameFormat = jDataInfo.Value <String>("displayName");
             JArray                 jData      = (JArray)jDataInfo.GetValue("data");
             ParameterInfo[]        parameters = methodInfo.GetParameters();
             IEnumerable <Object[]> data       = jData
                                                 .Cast <JObject>()
                                                 .Select(jObject => parameters
                                                         .Select(parameter => jObject.TryGetValue(parameter.Name, out JToken value)
                         ? value.ToObject(parameter.ParameterType)
                         : parameter.ParameterType.GetDefaultValue())
                                                         .ToArray());
             return(data);
         }
     }
 }
        public void Execute()
        {
            var keys = _actions
                       .Cast <JObject>().Where(action =>
            {
                var actionType = action.GetValue("type").Value <string>();
                return(actionType == "keyDown");
            })
                       .Select(action =>
            {
                var keyCode = action["value"].Value <string>()[0];
                if (!TryGetKey(keyCode, out var key))
                {
                    throw new NotSupportedException("Unknown key code: " + (int)keyCode);
                }
                return(key);
            })
                       .ToList();

            if (keys.Any())
            {
                Microsoft.Test.Input.Keyboard.Type(keys.Last(), keys.Take(keys.Count - 1).ToArray());
            }
        }
Example #28
0
        internal List <JObject> ConvertToApiModel(List <LocalizationResource> resources)
        {
            var result = new JArray();

            foreach (var resource in resources)
            {
                var segments = resource.ResourceKey.Split(new [] { '.', '+' }, StringSplitOptions.RemoveEmptyEntries).ToList();

                void AddChildrenNodes(JArray children, List <string> list, LocalizationResource localizationResource, int currentLevel, int depth)
                {
                    while (true)
                    {
                        var(head, tail) = list;
                        var el = children.FirstOrDefault(c => c[_segmentPropertyName] != null && c[_segmentPropertyName].ToString().Equals(head, StringComparison.InvariantCultureIgnoreCase));
                        if (el == null)
                        {
                            el = new JObject {
                                [_segmentPropertyName] = head
                            };
                            if (currentLevel == depth)
                            {
                                // process leaf
                                var key = localizationResource.ResourceKey;
                                el["resourceKey"]    = key;
                                el["displayKey"]     = $"{key.Substring(0, key.Length > _listDisplayLength ? _listDisplayLength : key.Length)}{(key.Length > _listDisplayLength ? "..." : "")}";
                                el["titleKey"]       = $"{(key.Length > _popupTitleLength ? "..." : "")}{key.Substring(key.Length - Math.Min(_popupTitleLength, key.Length))}";
                                el["syncedFromCode"] = localizationResource.FromCode;
                                el["isModified"]     = localizationResource.IsModified;
                                el["allowDelete"]    = !localizationResource.FromCode;
                                el["translation"]    = localizationResource.Translations.FindByLanguage(CultureInfo.InvariantCulture)?.Value;
                                foreach (var language in Languages)
                                {
                                    el["translation-" + language.Code] = localizationResource.Translations.FindByLanguage(language.Code)?.Value;
                                }
                            }
                            else
                            {
                                el["_children"] = new JArray();
                                el["_classes"]  = new JObject {
                                    ["row"] = new JObject {
                                        ["parent-row"] = true
                                    }
                                };
                            }

                            children.Add(el);
                        }

                        if (tail.Any())
                        {
                            children      = el["_children"] as JArray;
                            list          = tail;
                            currentLevel += 1;
                            continue;
                        }

                        break;
                    }
                }

                if (segments.Any())
                {
                    AddChildrenNodes(result, segments, resource, 0, segments.Count - 1);
                }
            }

            return(result.Cast <JObject>().ToList());
        }
Example #29
0
 public static UpdateInfo[] ParseArray(JArray jsonArray)
 {
     return(jsonArray.Cast <JObject>().Select(jobject => new UpdateInfo(jobject)).ToArray());
 }
Example #30
0
 private void BindArray(JArray token, FilterPropertyType propertyType, JsonSerializer serializer)
 {
     token.Cast <JValue>().ToList().ForEach(x => BindValue(x, propertyType, serializer));
 }