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;
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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();
        }
Esempio n. 5
0
 public void Add(FinancierDbContext dbContext, Entities.Currency currencyEntity)
 {
     dbContext.Currencies.Add(currencyEntity);
     dbContext.SaveChanges();
 }