Example #1
0
        private void BuildJson(JObject obj, string objName)
        {
            while (true)
            {
                var addPropQuestion = $"Do you want to add a property to the {objName} object?";
                var addPropChoice   = FacadeLib.YesOrNo[Asker.GetChoiceFromList(addPropQuestion, FacadeLib.YesOrNo)];

                switch (addPropChoice)
                {
                case "No":
                    Console.WriteLine(obj.Root);
                    return;

                case "Yes":
                    var name    = FacadeLib.GetNameOrValue("new", NameOrValue.Name, XmlOrJson.Json);
                    var newProp = new JProperty(name);

                    obj.AddAndPrint(newProp);

                    var addObjQuestion = $"Is the value of the {name} property another object?";
                    var addObjChoice   = FacadeLib.YesOrNo[Asker.GetChoiceFromList(addObjQuestion, FacadeLib.YesOrNo)];

                    if (addObjChoice == "Yes")
                    {
                        var newObj = new JObject();
                        obj[name] = newObj;
                        Console.WriteLine(obj.Root);
                        BuildJson(newObj, name);
                    }
                    else
                    {
                        var value = FacadeLib.GetNameOrValue(name, NameOrValue.Value, XmlOrJson.Json);
                        obj[name] = value;
                        Console.WriteLine(obj.Root);
                    }
                    break;

                default:
                    break;
                }
            }
        }