Example #1
0
        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);
        }
Example #2
0
        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";
        }
Example #3
0
        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}");
            }
        }
Example #4
0
        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);
        }