private void SaveAccount() { account.Name = editName.Text; account.Description = editDescription.Text; account.Currency = Regex.Match((string)spinnerCurrency.SelectedItem, @"(?<=\().+?(?=\))").ToString(); account.Icon = iconDrawable; account.CreatedDate = DateTime.Today; SilverCoinsManager.SaveAccount(account); Finish(); }
public static void UpdateBalanceAfterTransactionUpdate(Account accountFrom, Account accountTo, Transaction transaction, decimal oldAmount) { var difference = oldAmount - transaction.Amount; if (transaction.Type == "Transfer") { accountTo.Balance = accountTo.Balance - (difference * transaction.CurrencyRate); SilverCoinsManager.SaveAccount(accountTo); } accountFrom.Balance = accountFrom.Balance + difference; SilverCoinsManager.SaveAccount(accountFrom); }
private void PrepareAccounts() { Configuration accountConfig = SilverCoinsManager.GetConfigurationRecordByKey("ACCINIT"); if (accountConfig == null || accountConfig.BooleanValue == false) { Account[] accounts = { new Account() { Name = "Checking account", Currency = "EUR", CreatedDate = DateTime.Today, Icon = Resource.Drawable.euro }, new Account() { Name = "Savings account", Currency = "EUR", CreatedDate = DateTime.Today, Icon = Resource.Drawable.deposits }, new Account() { Name = "Cash", Currency = "EUR", CreatedDate = DateTime.Today, Icon = Resource.Drawable.cash }, }; foreach (var account in accounts) { SilverCoinsManager.SaveAccount(account); } SilverCoinsManager.SaveConfiguration(new Configuration() { Name = "Accounts initalized", Key = "ACCINIT", BooleanValue = true }); } }
public static void UpdateBalanceAfterTransactionDelete(Account accountFrom, Account accountTo, Transaction transaction) { if (transaction.Type == "Transfer") { accountFrom.Balance = accountFrom.Balance + transaction.Amount; SilverCoinsManager.SaveAccount(accountFrom); accountTo.Balance = accountTo.Balance - (transaction.Amount * transaction.CurrencyRate); SilverCoinsManager.SaveAccount(accountTo); } else if (transaction.Type == "Income") { accountFrom.Balance = accountFrom.Balance - transaction.Amount; SilverCoinsManager.SaveAccount(accountFrom); } else { accountFrom.Balance = accountFrom.Balance + transaction.Amount; SilverCoinsManager.SaveAccount(accountFrom); } }
internal static void ImportTransactionsFromList(IEnumerable <TransactionImportExport> transactionsForImport) { if (transactionsForImport.Any()) { // Get list of accounts and categories from document var accountsForImport = transactionsForImport.Select(x => new Account { Name = x.Account, Currency = x.Currency, Balance = Convert.ToDecimal(x.Balance), CreatedDate = DateTime.Today, Description = string.Empty, Icon = Resource.Drawable.cash }); var categoriesForImport = transactionsForImport.Select(x => new Category { Name = x.Category, Type = x.Type == Category.CategoryTypes.Expense.ToString() ? Category.CategoryTypes.Expense : Category.CategoryTypes.Income, Description = string.Empty, CreatedDate = DateTime.Today, Visible = 1, Icon = Resource.Drawable.salary }); var accounts = SilverCoinsManager.GetAccounts(); var categories = SilverCoinsManager.GetCategories(); // Find accounts and categories that do not exist in database var newAccounts = accountsForImport.Where(x => !accounts.Any(s => s.Name == x.Name)); var newCategories = categoriesForImport.Where(x => !categories.Any(s => s.Name == x.Name)); // Insert missing accounts and categories if (newAccounts.Any()) { foreach (var account in newAccounts) { SilverCoinsManager.SaveAccount(account); } } if (newCategories.Any()) { foreach (var category in newCategories) { SilverCoinsManager.SaveCategory(category); } } foreach (var transaction in transactionsForImport) { SilverCoinsManager.SaveTransaction(new Transaction { Name = transaction.Name, Account = SilverCoinsManager.GetAccountByName(transaction.Account).Id, Category = SilverCoinsManager.GetCategoryByName(transaction.Category).Id, Amount = Convert.ToDecimal(transaction.Amount), PaymentType = transaction.PaymentType, Type = transaction.Type, CreatedDate = DateTime.Now }); } } }