Example #1
0
        public IList <RangeUpdateModel> PrepExpenseUpdate(CategoriesExpense expenses, DateTime effectiveDate)
        {
            var expenseRange = GetExpenseRangeString(effectiveDate);
            var update       = new RangeUpdateModel();

            update.Dimension = DimensionEnums.Columns;
            update.Range     = expenseRange;
            update.Values    = new List <IList <object> > {
                new List <object> {
                    expenses.DailyFood,
                    expenses.Gifts,
                    expenses.Medical,
                    expenses.Health,
                    expenses.Necessities,
                    expenses.Transportation,
                    expenses.Personal,
                    expenses.Fun,
                    expenses.Utilities,
                    expenses.Travel,
                    expenses.Debt,
                    expenses.Electronics,
                    expenses.Goals,
                    expenses.Rent,
                    expenses.Car,
                    expenses.Restaurants,
                    expenses.Appartment,
                    expenses.Investment,
                    expenses.Other
                },
            };

            return(new List <RangeUpdateModel> {
                update
            });
        }
Example #2
0
        // Single update
        public WrappedResponse UpdateRange(string spreadsheetId, RangeUpdateModel model)
        {
            try
            {
                var valueRange = new ValueRange();
                valueRange.MajorDimension = model.Dimension.GetString();
                valueRange.Values         = model.Values;

                var updateRequest = _googleSheets.Spreadsheets.Values.Update(
                    valueRange,
                    spreadsheetId,
                    model.Range
                    );
                updateRequest.ValueInputOption = SpreadsheetsResource
                                                 .ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;

                var response = updateRequest.Execute();

                if ((response.UpdatedCells ?? 0) == 0)
                {
                    throw new ApplicationException("Update Range had no effect");
                }

                return(new WrappedResponse {
                    Success = true
                });
            }
            catch (Exception e)
            {
                return(new WrappedResponse {
                    Success = false, Exception = e
                });
            }
        }
Example #3
0
        /*
         * This method is responsible for updating the (hopefully empty) transaction columns with
         */
        public IList <RangeUpdateModel> PrepSaveHighlightedTransactions(List <TransactionExpense> expenses, List <TransactionIncome> incomes)
        {
            // expense update
            var expenseUpdateModel = new RangeUpdateModel();

            expenseUpdateModel.Range     = _sheetDetails.TransactionsExpenseRange;
            expenseUpdateModel.Dimension = DimensionEnums.Rows;
            expenseUpdateModel.Values    = new List <IList <object> >();

            foreach (var expense in expenses)
            {
                var row = new List <object>();
                row.Insert((int)TransactionExpenseColumnEnum.SaveNote, expense.SaveNote);
                row.Insert((int)TransactionExpenseColumnEnum.DateString, expense.TransactionDate.ToString("d"));
                row.Insert((int)TransactionExpenseColumnEnum.DollarAmount, expense.NetCost);
                row.Insert((int)TransactionExpenseColumnEnum.Detail, expense.Detail);
                row.Insert((int)TransactionExpenseColumnEnum.By, expense.By);
                row.Insert((int)TransactionExpenseColumnEnum.For, expense.For);
                row.Insert((int)TransactionExpenseColumnEnum.Category, expense.Category);
                expenseUpdateModel.Values.Add(row);
            }

            // expense update
            var incomeUpdateModel = new RangeUpdateModel();

            incomeUpdateModel.Range     = _sheetDetails.TransactionsIncomeRange;
            incomeUpdateModel.Dimension = DimensionEnums.Rows;
            incomeUpdateModel.Values    = new List <IList <object> >();

            foreach (var income in incomes)
            {
                var row = new List <object>();
                row.Insert((int)TransactionIncomeColumnEnum.SaveNote, income.SaveNote);
                row.Insert((int)TransactionIncomeColumnEnum.DateString, income.TransactionDate.ToString("d"));
                row.Insert((int)TransactionIncomeColumnEnum.DollarAmount, income.NetGain);
                row.Insert((int)TransactionIncomeColumnEnum.Detail, income.Detail);
                row.Insert((int)TransactionIncomeColumnEnum.For, income.For);
                row.Insert((int)TransactionIncomeColumnEnum.Category, income.Category);
                incomeUpdateModel.Values.Add(row);
            }

            return(new List <RangeUpdateModel> {
                expenseUpdateModel,
                incomeUpdateModel
            });
        }
        public IList <RangeUpdateModel> PrepExpenseCategoryProjectionUpdate(CategoriesExpense expenses, UserEnum user)
        {
            var expenseUpdateModel = new RangeUpdateModel();

            expenseUpdateModel.Range = user == UserEnum.Green ?
                                       _sheetDetails.GreenExpenseProjectionRange :
                                       _sheetDetails.RedExpenseProjectionRange;

            expenseUpdateModel.Dimension = DimensionEnums.Columns;

            // TODO: use order-safe enum
            expenseUpdateModel.Values = new List <IList <object> > {
                new List <object> {
                    expenses.DailyFood,
                    expenses.Gifts,
                    expenses.Medical,
                    expenses.Health,
                    expenses.Necessities,
                    expenses.Transportation,
                    expenses.Personal,
                    expenses.Fun,
                    expenses.Utilities,
                    expenses.Travel,
                    expenses.Debt,
                    expenses.Electronics,
                    expenses.Goals,
                    expenses.Rent,
                    expenses.Car,
                    expenses.Restaurants,
                    expenses.Appartment,
                    expenses.Investment,
                    expenses.Other
                },
            };
            return(new List <RangeUpdateModel> {
                expenseUpdateModel
            });
        }
Example #5
0
        public WrappedResponse AppendIncome(IList <TransactionIncome> incomes)
        {
            var incomeAppendModel = new RangeUpdateModel();

            incomeAppendModel.Range     = _sheetDetails.IncomeRange;
            incomeAppendModel.Dimension = DimensionEnums.Rows;
            incomeAppendModel.Values    = new List <IList <object> >();
            var sortedIncome = incomes.ToList().OrderBy(x => x.TransactionDate).ToList();

            foreach (var income in sortedIncome)
            {
                var row        = new List <object>();
                var dateString = GetHistoricSheetDateString(income.TransactionDate);
                row.Insert((int)HistoricIncomeColumnEnum.DateString, dateString);
                row.Insert((int)HistoricIncomeColumnEnum.DollarAmount, income.NetGain);
                row.Insert((int)HistoricIncomeColumnEnum.Detail, income.Detail);
                row.Insert((int)HistoricIncomeColumnEnum.For, income.For);
                row.Insert((int)HistoricIncomeColumnEnum.Category, income.Category);
                incomeAppendModel.Values.Add(row);
            }

            return(AppendToRange(incomeAppendModel));
        }
        public IList <RangeUpdateModel> PrepIncomeCategoryProjectionUpdate(CategoriesIncome income, UserEnum user)
        {
            var update = new RangeUpdateModel();

            update.Range = user == UserEnum.Green ?
                           _sheetDetails.GreenIncomeProjectionRange :
                           _sheetDetails.RedIncomeProjectionRange;

            update.Dimension = DimensionEnums.Columns;

            var catchAllValue = income.Payment + income.Gifts + income.Refund + income.Other;

            update.Values = new List <IList <object> > {
                new List <object> {
                    0,
                    income.Paycheck,
                },
            };

            return(new List <RangeUpdateModel> {
                update
            });
        }
Example #7
0
        public WrappedResponse AppendExpenses(IList <TransactionExpense> expenses)
        {
            var expenseAppendModel = new RangeUpdateModel();

            expenseAppendModel.Range     = _sheetDetails.ExpenseRange;
            expenseAppendModel.Dimension = DimensionEnums.Rows;
            expenseAppendModel.Values    = new List <IList <object> >();
            var sortedExpense = expenses.ToList().OrderBy(x => x.TransactionDate).ToList();

            foreach (var expense in sortedExpense)
            {
                var row        = new List <object>();
                var dateString = GetHistoricSheetDateString(expense.TransactionDate);
                row.Insert((int)HistoricExpenseColumnEnum.DateString, dateString);
                row.Insert((int)HistoricExpenseColumnEnum.DollarAmount, expense.NetCost);
                row.Insert((int)HistoricExpenseColumnEnum.Detail, expense.Detail);
                row.Insert((int)HistoricExpenseColumnEnum.By, expense.By);
                row.Insert((int)HistoricExpenseColumnEnum.For, expense.For);
                row.Insert((int)HistoricExpenseColumnEnum.Category, expense.Category);
                expenseAppendModel.Values.Add(row);
            }

            return(AppendToRange(expenseAppendModel));
        }
Example #8
0
        public IList <RangeUpdateModel> PrepIncomeUpdate(CategoriesIncome income, DateTime effectiveDate)
        {
            var incomeRange = GetIncomeRangeString(effectiveDate);
            var update      = new RangeUpdateModel();

            update.Dimension = DimensionEnums.Columns;
            update.Range     = incomeRange;
            var catchAllValue = income.Payment + income.Gifts + income.Refund + income.Other;

            update.Values = new List <IList <object> > {
                new List <object> {
                    income.Savings,
                    income.Paycheck,
                    income.Bonus,
                    income.Personal,
                    income.Gifts,
                    catchAllValue
                },
            };

            return(new List <RangeUpdateModel> {
                update
            });
        }
Example #9
0
 protected WrappedResponse AppendToRange(RangeUpdateModel model)
 {
     return(_sheetApi.AppendToRange(_sheetId, model));
 }