public void AddRecentBudgetToTop(BudgetStub budgetStub) { if (RecentBudgets == null) { RecentBudgets = new List <BudgetStub>(); } if (LastBudget != null && LastBudget.BudgetPath == budgetStub.BudgetPath) { LastBudget = budgetStub; } var budgetInList = RecentBudgets.Where(rb => rb.BudgetPath == budgetStub.BudgetPath).SingleOrDefault(); if (budgetInList == null) { MoveLastBudgetToTop(); LastBudget = budgetStub; } else { RecentBudgets.Remove(budgetInList); MoveLastBudgetToTop(); LastBudget = budgetStub; } }
private void OpenRecentBudget(BudgetStub budgetStub) { if (budgetStub == null) { return; } ValidBudgetCheck validBudgetCheck = _budgetLoader.IsBudgetValid(budgetStub.BudgetPath); if (!validBudgetCheck.IsValid) { _dialogService.ShowError(validBudgetCheck.Error); return; } try { BudgetModel budget = _budgetLoader.LoadBudget(budgetStub.BudgetPath); var deviceSettings = _settingsProvider.Get <Device>(); budgetStub.LastEdited = DateTime.Now; deviceSettings.AddRecentBudgetToTop(budgetStub); deviceSettings.Save(); _mainViewModel.MountBudget(budget); _navigationService.NavigateTo <MainBudgetViewModel>(); } catch (Exception) { _dialogService.ShowError($"There was an error opening the budget {budgetStub.BudgetPath}. It may be corrupt."); } }
private void CreateBudget() { string budgetPath = _budgetLoader.GetBudgetSavePath(Budget.Name); if (budgetPath == null) { return; } InitializeDefaultCategories(); BudgetModel budgetModel = _budgetLoader.CreateNewBudget(budgetPath, Budget); Account manyTransactions = new Account(); manyTransactions.AccountType = AccountTypes.Checking; manyTransactions.BudgetingType = BudgetingTypes.OnBudget; manyTransactions.Name = "Many Transactions"; Account manyMoreTransactions = new Account(); manyMoreTransactions.AccountType = AccountTypes.Checking; manyMoreTransactions.BudgetingType = BudgetingTypes.OnBudget; manyMoreTransactions.Name = "Many More Transactions"; Payee payee = new Payee(); payee.Name = "Subway"; Budget.Payees.Add(payee); budgetModel.SaveChanges(); /*for (int i = 1; i <= 1000; i++) * { * OpenBudget.Model.Entities.Transaction transaction = new OpenBudget.Model.Entities.Transaction(); * transaction.Amount = -i; * transaction.Category = Budget.MasterCategories[0].Categories[0]; * transaction.TransactionDate = DateTime.Today; * transaction.Payee = payee; * if (i % 2 == 0) * { * manyTransactions.Transactions.Add(transaction); * } * else * { * manyMoreTransactions.Transactions.Add(transaction); * } * } * * Budget.Accounts.Add(manyTransactions); * Budget.Accounts.Add(manyMoreTransactions); * budgetModel.SaveChanges();*/ List <ModelEvent> events = budgetModel.BudgetStore.EventStore.GetEvents().ToList(); EventStreamHeader header = new EventStreamHeader(events[0].EventVector, events.Last().EventVector, default(Guid), default(Guid)); using (var stream = File.Create(Path.Combine(Path.GetDirectoryName(budgetPath), "events.json"))) using (var writer = new EventStreamWriter(stream, header, true)) { writer.WriteEvents(events); } var deviceSettings = _settingsProvider.Get <Device>(); BudgetStub budgetStub = new BudgetStub() { BudgetName = Budget.Name, BudgetPath = budgetPath, LastEdited = DateTime.Now }; deviceSettings.AddRecentBudgetToTop(budgetStub); deviceSettings.Save(); _mainViewModel.MountBudget(budgetModel); _budget.ErrorsChanged -= Budget_ErrorsChanged; _navigationService.NavigateTo <MainBudgetViewModel>(); }