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); } }
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(); }