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 }); }
// 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 }); } }
/* * 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 }); }
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 }); }
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)); }
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 }); }
protected WrappedResponse AppendToRange(RangeUpdateModel model) { return(_sheetApi.AppendToRange(_sheetId, model)); }