public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JObject jsonObject = JObject.Load(reader); bool isIncome = jsonObject["IncomeOrOutcome"].Equals(IncomeOutcomeEnum.Income); // Using Constructors with default values to create a default object ABudgetItem item; if (isIncome) { IncomeCategoryEnum category = Enum.Parse <IncomeCategoryEnum>(jsonObject["Category"].ToString()); item = new IncomeBudgetItem(category, default(decimal), default(string), default(DateTime)); } else { OutcomeCategoryEnum category = Enum.Parse <OutcomeCategoryEnum>(jsonObject["Category"].ToString()); item = new OutcomeBudgetItem(category, default(decimal), default(string), default(DateTime)); } serializer.Populate(jsonObject.CreateReader(), item); return(item); }
internal OutcomeBudgetItem CreateOutcomeBudgetItem() { DateTime itemDate = ConsoleHelper.GetDateTimeInput("Enter item date"); string description = ConsoleHelper.GetStringInput("Enter an Item Description"); decimal value = ConsoleHelper.GetDecimalInput("Enter the Value:"); OutcomeCategoryEnum category = ConsoleHelper.GetEnumValueFromConsoleInput <OutcomeCategoryEnum>("Enter an Outcome Category:"); return(new OutcomeBudgetItem(category, value, description, itemDate)); }
public void AddOutcomeCategoryTotal(OutcomeCategoryEnum category, decimal value) { OutcomeCategoryTotals.Add(category, value); }
public void UpdateCategory(OutcomeCategoryEnum category) { Category = category; }
public OutcomeBudgetItem(OutcomeCategoryEnum category, decimal value, string description, DateTime itemDate) : base(IncomeOutcomeEnum.Outcome, value, description, itemDate) { Category = category; }