示例#1
0
 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);
 }
示例#2
0
        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
            });
        }