Example #1
0
    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");
        }
    }
Example #2
0
        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);
        }
Example #4
0
        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);
            });
        }
Example #5
0
        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;
            }
        }
Example #6
0
        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);
        }