Exemple #1
0
        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;
 }