protected override void OnModelCreating(ModelBuilder modelBuilder) { Budget.Configure(modelBuilder); Transaction.Configure(modelBuilder); Income.Configure(modelBuilder); User.Configure(modelBuilder); TransactionBudget.Configure(modelBuilder); TransactionIncome.Configure(modelBuilder); RecurringTransaction.Configure(modelBuilder); RecurringIncome.Configure(modelBuilder); }
public Transactions LoadTransactions() { var effectiveDate = Month.GetEffectiveDate(); var effectiveYear = effectiveDate.Year; var effectiveMonth = effectiveDate.Month; // load expenses var rawExpenses = LoadRange(_sheetDetails.TransactionsExpenseRange); var expenses = new List <TransactionExpense>(); if (rawExpenses != null && rawExpenses.Count > 0) { foreach (var row in rawExpenses) { // TODO: handle mal-formed inputs more grcefully // let's just skip incomplete rows if (row.Count <= (int)TransactionExpenseColumnEnum.Category) { continue; } var expense = new TransactionExpense() { Save = row[(int)TransactionExpenseColumnEnum.SaveNote] .ToString().ToLower() == SAVE_ENTRY_KEYWORD, SaveNote = row[(int)TransactionExpenseColumnEnum.SaveNote] .ToString(), TransactionDate = DateTime .Parse(row[(int)TransactionExpenseColumnEnum.DateString].ToString()), NetCost = decimal.Parse( row[(int)TransactionExpenseColumnEnum.DollarAmount].ToString(), NumberStyles.Currency), Detail = row[(int)TransactionExpenseColumnEnum.Detail].ToString(), By = row[(int)TransactionExpenseColumnEnum.By].ToString(), For = row[(int)TransactionExpenseColumnEnum.For].ToString(), Category = row[(int)TransactionExpenseColumnEnum.Category].ToString(), }; // check for bad data. make sure all entries are dated for this year and month if (expense.TransactionDate.Year != effectiveYear || expense.TransactionDate.Month != effectiveMonth) { expense.TransactionDate = new DateTime(effectiveYear, effectiveMonth, expense.TransactionDate.Day); } expenses.Add(expense); } } // load income var rawIncome = LoadRange(_sheetDetails.TransactionsIncomeRange); var incomes = new List <TransactionIncome>(); if (rawIncome != null && rawIncome.Count > 0) { foreach (var row in rawIncome) { if (row.Count <= (int)TransactionIncomeColumnEnum.Category) { continue; } var income = new TransactionIncome() { Save = row[(int)TransactionIncomeColumnEnum.SaveNote] .ToString().ToLower() == SAVE_ENTRY_KEYWORD, TransactionDate = DateTime .Parse(row[(int)TransactionIncomeColumnEnum.DateString].ToString()), NetGain = decimal.Parse( row[(int)TransactionIncomeColumnEnum.DollarAmount].ToString(), NumberStyles.Currency), Detail = row[(int)TransactionIncomeColumnEnum.Detail].ToString(), For = row[(int)TransactionIncomeColumnEnum.For].ToString(), Category = row[(int)TransactionIncomeColumnEnum.Category].ToString(), }; // check for bad data. make sure all entries are dated for this year and month if (income.TransactionDate.Year != effectiveYear || income.TransactionDate.Month != effectiveMonth) { income.TransactionDate = new DateTime(effectiveYear, effectiveMonth, income.TransactionDate.Day); } incomes.Add(income); } } return(new Transactions() { Expenses = expenses, RawExpenses = rawExpenses, Income = incomes, RawIncome = rawIncome }); }