public void Create(AccountRelationship accountRelationship) { var entity = new Entities.AccountRelationship { SourceAccountId = accountRelationship.SourceAccount.AccountId, DestinationAccountId = accountRelationship.DestinationAccount.AccountId, Type = accountRelationship.Type }; m_dbContext.AccountRelationships.Add(entity); m_dbContext.SaveChanges(); accountRelationship.AccountRelationshipId = entity.AccountRelationshipId; }
public void Create(TransactionRelationship transactionRelationship) { var transactionRelationshipEntity = new Entities.TransactionRelationship { SourceTransactionId = transactionRelationship.SourceTransaction.TransactionId, DestinationTransactionId = transactionRelationship.DestinationTransaction.TransactionId, Type = transactionRelationship.Type }; m_dbContext.TransactionRelationships.Add(transactionRelationshipEntity); m_dbContext.SaveChanges(); transactionRelationship.TransactionRelationshipId = transactionRelationshipEntity.TransactionRelationshipId; }
public void Create() { m_dbContext.Database.EnsureCreated(); m_logger.LogInformation("Database is created"); if (!m_dbContext.Currencies.Any()) { var dollar = new Entities.Currency { Name = "US Dollar", ShortName = "USD", Symbol = "$", IsPrimary = true }; m_dbContext.Currencies.Add(dollar); var sterling = new Entities.Currency { Name = "UK Sterling", ShortName = "GBP", Symbol = "£", IsPrimary = false }; m_dbContext.Currencies.Add(sterling); m_dbContext.SaveChanges(); m_logger.LogInformation("Populated database with default currencies"); } }
public void Load(string path) { //TODO: clean database on Load() //https://github.com/JonnyRivers/Financier/issues/51 m_dbContext.Database.EnsureCreated(); m_logger.LogInformation("Database is created"); m_dbContext.BudgetTransactions.RemoveRange(m_dbContext.BudgetTransactions); m_dbContext.SaveChanges(); m_dbContext.Budgets.RemoveRange(m_dbContext.Budgets); m_dbContext.SaveChanges(); m_dbContext.TransactionRelationships.RemoveRange(m_dbContext.TransactionRelationships); m_dbContext.SaveChanges(); m_dbContext.Transactions.RemoveRange(m_dbContext.Transactions); m_dbContext.SaveChanges(); m_dbContext.AccountRelationships.RemoveRange(m_dbContext.AccountRelationships); m_dbContext.SaveChanges(); m_dbContext.Accounts.RemoveRange(m_dbContext.Accounts); m_dbContext.SaveChanges(); m_dbContext.Currencies.RemoveRange(m_dbContext.Currencies); m_dbContext.SaveChanges(); XDocument document = XDocument.Load(path); XElement rootElement = document.Root; List <XElement> currencyElements = rootElement.Elements(XName.Get("Currency")).ToList(); List <Entities.Currency> currencies = currencyElements.Select(CurrencyFromElement).ToList(); m_dbContext.Currencies.AddRange(currencies); m_dbContext.SaveChanges(); Dictionary <string, Entities.Currency> currenciesByShortName = currencies.ToDictionary(c => c.ShortName, c => c); List <XElement> accountElements = rootElement.Elements(XName.Get("Account")).ToList(); List <Entities.Account> accounts = accountElements.Select(e => AccountFromElement(e, currenciesByShortName)).ToList(); m_dbContext.Accounts.AddRange(accounts); m_dbContext.SaveChanges(); Dictionary <string, Entities.Account> accountsByName = accounts.ToDictionary(a => a.Name, a => a); List <XElement> accountRelationshipElements = rootElement.Elements(XName.Get("AccountRelationship")).ToList(); List <Entities.AccountRelationship> accountRelationships = accountRelationshipElements.Select(e => AccountRelationshipFromElement(e, accountsByName)).ToList(); m_dbContext.AccountRelationships.AddRange(accountRelationships); m_dbContext.SaveChanges(); var transactionsByIncomingId = new Dictionary <int, Entities.Transaction>(); List <XElement> transactionElements = rootElement.Elements(XName.Get("Transaction")).ToList(); List <Entities.Transaction> transactions = transactionElements .Select(e => TransactionFromElement(e, accountsByName, transactionsByIncomingId)) .ToList(); m_dbContext.Transactions.AddRange(transactions); m_dbContext.SaveChanges(); List <XElement> transactionRelationshipElements = rootElement.Elements(XName.Get("TransactionRelationship")).ToList(); List <Entities.TransactionRelationship> transactionRelationships = transactionRelationshipElements .Select(e => TransactionRelationshipFromElement(e, transactionsByIncomingId)).ToList(); m_dbContext.TransactionRelationships.AddRange(transactionRelationships); m_dbContext.SaveChanges(); List <XElement> budgetElements = rootElement.Elements(XName.Get("Budget")).ToList(); List <Entities.Budget> budgets = budgetElements.Select(b => BudgetFromElement(b, accountsByName)).ToList(); m_dbContext.Budgets.AddRange(budgets); m_dbContext.SaveChanges(); }
public void Add(FinancierDbContext dbContext, Entities.Currency currencyEntity) { dbContext.Currencies.Add(currencyEntity); dbContext.SaveChanges(); }