コード例 #1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.TokenType == JsonToken.Null)
            {
                return(null);
            }

            var    obj             = JObject.Load(reader);
            string inputTypeString = (string)obj.SelectToken("InputType");

            if (!String.IsNullOrWhiteSpace(inputTypeString))
            {
                TextGeneratorInputType inputType = (TextGeneratorInputType)Enum.Parse(typeof(TextGeneratorInputType), inputTypeString);
                //Log.Here().Activity($"inputType: {inputType.ToString()}");

                if (inputType == TextGeneratorInputType.Incremental || inputType == TextGeneratorInputType.Decremental)
                {
                    TextGeneratorInputNumberData target = new TextGeneratorInputNumberData();

                    var jObjectReader = CreateNewReader(reader, obj);
                    serializer.Populate(jObjectReader, target);
                    target.InputType = inputType;

                    //Log.Here().Activity($"Created input: {target.GetType().ToString()} | {target.Keyword} | {target.IncrementBy}");

                    return(target);
                }
                else if (inputType == TextGeneratorInputType.Text)
                {
                    TextGeneratorInputTextData target = new TextGeneratorInputTextData();

                    var jObjectReader = CreateNewReader(reader, obj);
                    serializer.Populate(jObjectReader, target);
                    target.InputType = inputType;

                    return(target);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                TextGeneratorViewModel vm = new TextGeneratorViewModel();
                var jObjectReader         = CreateNewReader(reader, obj);
                serializer.Populate(jObjectReader, vm);
                return(vm);
            }
        }
コード例 #2
0
        public void AddKeyword(TextGeneratorInputType inputType)
        {
            if (Data.ActiveData != null)
            {
                var nextKeywordName = "Keyword" + (Data.ActiveData.Keywords.Count() + 1);

                if (inputType == TextGeneratorInputType.Text)
                {
                    Data.ActiveData.Keywords.Add(new TextGeneratorInputTextData(nextKeywordName));
                }
                else if (inputType == TextGeneratorInputType.Incremental || inputType == TextGeneratorInputType.Decremental)
                {
                    Data.ActiveData.Keywords.Add(new TextGeneratorInputNumberData(inputType, nextKeywordName));
                }
            }
            //AppController.Main.SaveTextGeneratorData();
        }