public static void DoMyFunction(JToken token, Func <string, JToken> convertString) { switch (token.Type) { case JTokenType.Array: JArray array = token as JArray; array.ForEach(a => DoMyFunction(a, convertString)); break; case JTokenType.String: token.Replace(convertString(token.ToString())); break; case JTokenType.Object: token.Children().ForEach(t => DoMyFunction(t, convertString)); break; case JTokenType.Property: JProperty prop = token as JProperty; if (prop.Value.Type == JTokenType.Array) { DoMyFunction(prop.Value, convertString); return; } prop.Value = convertString(prop.Value.ToString()); break; default: throw new NotImplementedException(token.Type + " is not defined"); } }
public static ICollection <BeerItem> GetRating(string beerData) { JArray list = JArray.Parse(beerData); if (list == null || list.Count < 1) { return(new List <BeerItem>()); } List <UserRating> userRatings; if (File.Exists(databaseFile)) { string fileData = System.IO.File.ReadAllText(databaseFile); userRatings = JsonConvert.DeserializeObject <List <UserRating> >(fileData); if (userRatings == null) { userRatings = new List <UserRating>(); } } else { userRatings = new List <UserRating>(); } List <BeerItem> beers = new List <BeerItem>(); list.ForEach(obj => { int beerId = obj.Value <int>("id"); string name = obj.Value <string>("name"); string description = obj.Value <string>("description"); var ratings = userRatings.Where(x => x.Id == beerId).ToList(); beers.Add(new BeerItem { Id = beerId, Name = name, Description = description, UserRatings = ratings.Select(x => new UserRatingItem { Username = x.Username, Comments = x.Comments, Rating = x.Rating }).ToList() }); }); return(beers); }
public override ValidatorResult Validate(JObject payload) { ValidatorResult toReturn = new ValidatorResult() { IsValid = true, Messages = new List <string>() }; if (payload != null) { JArray collection = payload.Property(this.PropertyName, StringComparison.InvariantCultureIgnoreCase)?.Value as JArray; if (collection != null && collection.Any()) { collection.ForEach(i => toReturn.Concat(this.ValidateItem(i as JObject))); } } return(toReturn); }
static void ParseKeys(SelfDiagnosisSubmissionDTO selfDiagnosisSubmissionDTO, JsonSerializerSettings settings, ENOperation varAssignCheck) { string jsonBody = JsonConvert.SerializeObject(selfDiagnosisSubmissionDTO, settings); JObject parsed = JObject.Parse(jsonBody); JArray keyArray = (JArray)parsed["keys"]; JArray visitedCountries = (JArray)parsed["visitedCountries"]; JArray regions = (JArray)parsed["regions"]; PushKeysInfo += $"visitedCountries: {visitedCountries}\n"; PushKeysInfo += $"regions: {regions}\n"; keyArray?.ForEach(key => { String keyData = $"Key: {EncodingUtils.ConvertByteArrayToString((byte[])key["key"])} ,\n" + $"rollingStart: {key["rollingStart"]},\n" + $"rollingDuration: {key["rollingDuration"]},\n" + $"transmissionRiskLevel: {key["transmissionRiskLevel"]}\n\n"; PushKeysInfo += keyData; Debug.WriteLine(keyData); }); }
public static void ProcessingJson(this JToken jToken, Action <JValue> valueAct) { switch (jToken.Type) { case JTokenType.Array: JArray array = jToken as JArray; array.ForEach(item => ProcessingJson(item, valueAct)); break; case JTokenType.Object: JObject obj = jToken as JObject; obj.Children().ForEach(item => ProcessingJson(item, valueAct)); break; case JTokenType.Property: var property = jToken as JProperty; ProcessingJson(property.Value, valueAct); break; default: valueAct(jToken as JValue); break; } }
public static int HandleImportOptions() { JArray iterations = JsonConvert.DeserializeObject <JArray>(System.IO.File.ReadAllText("iterations.json")); JArray workitems = JsonConvert.DeserializeObject <JArray>(System.IO.File.ReadAllText("workitems.json")); _oldIdToNewAttachment = AddAttachments(); iterations.SelectMany(x => x["children"].HasValues ? x["children"] : new JArray()).ForEach(x => { _oldIdToNewIteration.Add((string)x["id"], CreateIteration(x)); }); JToken rootIterationId = ApiCall <JToken>(HttpMethod.Get, $"https://dev.azure.com/{_options.Organisation}/{_options.Project}/_apis/wit/classificationnodes/iterations?api-version=5.1"); workitems.ForEach(x => { Console.WriteLine(x["id"] + ": " + x["fields"]["System.Title"]); // Neue Iteration Id setzen if (x["fields"].HasValues) { string oldIterationPath = (string)x["fields"]["System.IterationPath"]; string newIterationPath = oldIterationPath.Split('\\').Length > 1 ? _options.Project + '\\' + "Migrated " + oldIterationPath.Split('\\').Last() : _options.Project; // WorkItem mit State New anlegen JToken writtenItem = CreateWorkItem(x); writtenItem["fields"]["System.IterationPath"] = newIterationPath; writtenItem["fields"]["System.Description"] = x.Value <JToken>("fields").Value <JToken>("System.Description"); if (!writtenItem.HasValues) { return; } Console.WriteLine("\tnew id : " + writtenItem["id"]); // Alte Id <-> Neue Id Zuordnung speichen _oldIdToNewWorkItem.Add( (string)x["id"], writtenItem ); // Wechsel in den ursprünglichen State UpdateWorkItem(writtenItem, (string)x["fields"]["System.State"]); } }); // Relationen umschreiben workitems.ForEach(x => { JArray relationsOld = x.Value <JArray>("relations") ?? null; if (relationsOld == null) { return; } relationsOld.Where(y => y["rel"].ToString() != "ArtifactLink").ForEach(y => { JToken newParent = null; _oldIdToNewWorkItem.TryGetValue((string)x["id"], out newParent); if (newParent == null) { return; } string oldId = ((string)y["url"]).Split('/').Last(); JToken newChild = null; _oldIdToNewWorkItem.TryGetValue(oldId, out newChild); if (newChild == null) { return; } string newUrl = newChild.Value <string>("url"); if (string.IsNullOrWhiteSpace(newUrl)) { return; } y["url"] = newUrl; AddRelation(newParent, y); }); }); // Kommentare umschreiben workitems.ForEach(x => { if (x.Value <JToken>("comments") == null) { return; } JToken newParent = null; _oldIdToNewWorkItem.TryGetValue((string)x["id"], out newParent); if (newParent == null) { return; } x["comments"].ForEach(comment => { AddComment(newParent, comment); }); // Alle hochgeladenen Attachments verknüpfen if (_oldIdToNewAttachment.ContainsKey((string)x["id"])) { _oldIdToNewAttachment[(string)x["id"]].ForEach( attachment => AddRelation(newParent, attachment) ); } }); return(1); }