protected ValueTimeObject GetRow(long unixTime) { var lastData = new ValueTimeObject(); if (objects.Count > 0) { lastData.value = objects[0].value; lastData.time = objects[0].time; for (var i = objects.Count - 1; i > -1; i--) { if (unixTime == objects[i].time) { lastData.time = objects[i].time; lastData.value = objects[i].value; return(lastData); } if (objects[i].time <unixTime && lastData.time> unixTime) { lastData.value = IncomeHelper.Interpolate(unixTime, objects[i], new ValueTimeObject(lastData.time, lastData.value)); lastData.time = unixTime; return(lastData); } lastData.time = objects[i].time; lastData.value = objects[i].value; } } lastData.time = 0; lastData.value = 0; return(lastData); }
public IncomesViewModel(IncomeHelper helper) { this.Helper = helper; var initialEntries = Helper.GetIncome(IncomeType.Year); this.Charts = new List <Chart>(MakeCharts(initialEntries)); this.TimeButtons = new ObservableCollection <IncomeTimeButton> { new IncomeTimeButton("0", 0, "Day", new Command(GetEntries)), new IncomeTimeButton("1", 0, "Week", new Command(GetEntries)), new IncomeTimeButton("2", 0, "Month", new Command(GetEntries)), new IncomeTimeButton("3", 1, "Year", new Command(GetEntries)), }; this.Login = MainContext.Login; SetUpIncomeAndBalanceBasedOnEntries(initialEntries); this.ExpensesText = ResourceProvider.IncomesPage_ExpensesText; this.BalanceText = ResourceProvider.IncomesPage_BalanceText; this.IncomeText = ResourceProvider.IncomesPage_IncomeText; this.AssetsText = ResourceProvider.IncomesPage_AssetsText; //TODO GET BALANCE FROM ACCOUNT this.Balance = "98,2410.84"; }
public async void Execute(IJobExecutionContext context) { try { HttpResponseMessage response = _client.GetAsync("api/outcomes").Result; if (response.IsSuccessStatusCode) { var outcomeContent = await response.Content.ReadAsStringAsync(); var outcomeList = JsonConvert.DeserializeObject <List <DS_Outcome> >(outcomeContent); var incomeList = Mapper.Map <List <DS_IncomePrice> >(outcomeList); foreach (var incomePrice in incomeList) { IncomeHelper.IncomePriceAdd(incomePrice); foreach (var incomePriceItem in incomePrice.DS_IncomePriceItems) { IncomeHelper.IncomePriceSimpleItemItemAdd(incomePriceItem, incomePrice.DS_StockID.Value, incomePriceItem.ID); } } _logger.Info($"Execute({string.Join(",", response.IsSuccessStatusCode)})"); } else { _logger.Error($"Execute({string.Join(",", response.IsSuccessStatusCode)})"); } } catch (Exception ex) { _logger.Error($"Execute({string.Join(",", context)}), Exception: {ex.Message}"); } }
public void WithExpensesIncomesAndSavings_Test() { // Arrange var account = AccountHelper.CreateAccountModel(1); var typeEntities = new List <ExpenseType> { ExpenseTypeHelper.CreateExpenseTypeModel(1, "Food"), ExpenseTypeHelper.CreateExpenseTypeModel(2, "Energy") }; var i = 1; var now = DateTime.Now; var oneMonthAgo = DateTime.Now.AddMonths(-1); var twoMonthsAgo = DateTime.Now.AddMonths(-2); var nowName = DateTimeFormatHelper.GetMonthNameAndYear(now); var oneMonthAgoName = DateTimeFormatHelper.GetMonthNameAndYear(oneMonthAgo); var twoMonthsAgoName = DateTimeFormatHelper.GetMonthNameAndYear(twoMonthsAgo); var threeMonthsAgoName = DateTimeFormatHelper.GetMonthNameAndYear(DateTime.Now.AddMonths(-3)); var expenses = new List <Expense>() { ExpenseHelper.CreateExpenseModel(i++, now, 100, 1), ExpenseHelper.CreateExpenseModel(i++, now, 200, 2), ExpenseHelper.CreateExpenseModel(i++, now, 300, 2), ExpenseHelper.CreateExpenseModel(i++, oneMonthAgo, 200, 1), ExpenseHelper.CreateExpenseModel(i++, oneMonthAgo.AddDays(-1), 100, 2), ExpenseHelper.CreateExpenseModel(i++, oneMonthAgo.AddDays(-2), 150, 2), ExpenseHelper.CreateExpenseModel(i++, twoMonthsAgo, 300, 2), ExpenseHelper.CreateExpenseModel(i++, twoMonthsAgo.AddDays(-2), 100, 1), ExpenseHelper.CreateExpenseModel(i, twoMonthsAgo.AddDays(-1), 600, 2) }; var incomes = new List <Income>() { IncomeHelper.CreateIncomeModel(1, now, 1000, 1), IncomeHelper.CreateIncomeModel(2, now.AddDays(-1), 300, 1), IncomeHelper.CreateIncomeModel(3, oneMonthAgo, 1200, 1), IncomeHelper.CreateIncomeModel(4, twoMonthsAgo, 1400, 1) }; var savings = new List <Saving>() { SavingHelper.CreateSavingModel(1, now, 500, 1), SavingHelper.CreateSavingModel(2, oneMonthAgo, 700, 1), SavingHelper.CreateSavingModel(3, twoMonthsAgo, 600, 1) }; var service = SetupExpenseService(account, typeEntities, expenses, incomes, savings); // Act var result = service.GetExpenseSummary(1, null); // Assert Assert.True(result.HasExpenses); Assert.False(result.HasCurrentBudgetPlan); Assert.Equal(1450, result.TotalExpensesOver12Months); Assert.Equal(725, result.AverageExpenses); Assert.Equal(1300, result.AverageIncomes); Assert.Equal(650, result.AverageSavings); Assert.Equal(13, result.DetailedExpensesOver12Months.Count); Assert.Equal(600, result.DetailedExpensesOver12Months[nowName].ExpenseValue); Assert.Equal(450, result.DetailedExpensesOver12Months[oneMonthAgoName].ExpenseValue); Assert.Equal(1000, result.DetailedExpensesOver12Months[twoMonthsAgoName].ExpenseValue); Assert.Equal(0, result.DetailedExpensesOver12Months[threeMonthsAgoName].ExpenseValue); Assert.Equal(7, result.DetailedMovementsOver6Months.Count); Assert.Equal(600, result.DetailedMovementsOver6Months[nowName].ExpenseValue); Assert.Equal(450, result.DetailedMovementsOver6Months[oneMonthAgoName].ExpenseValue); Assert.Equal(1000, result.DetailedMovementsOver6Months[twoMonthsAgoName].ExpenseValue); Assert.Equal(0, result.DetailedMovementsOver6Months[threeMonthsAgoName].ExpenseValue); Assert.Equal(1300, result.DetailedMovementsOver6Months[nowName].IncomeValue); Assert.Equal(1200, result.DetailedMovementsOver6Months[oneMonthAgoName].IncomeValue); Assert.Equal(1400, result.DetailedMovementsOver6Months[twoMonthsAgoName].IncomeValue); Assert.Equal(0, result.DetailedMovementsOver6Months[threeMonthsAgoName].IncomeValue); Assert.Equal(500, result.DetailedMovementsOver6Months[nowName].SavingValue); Assert.Equal(700, result.DetailedMovementsOver6Months[oneMonthAgoName].SavingValue); Assert.Equal(600, result.DetailedMovementsOver6Months[twoMonthsAgoName].SavingValue); Assert.Equal(0, result.DetailedMovementsOver6Months[threeMonthsAgoName].SavingValue); }