/// <summary> /// Delete a TransactionRelationship with its Id and Update IsDeleted IF that TransactionRelationship has relationship with others /// </summary> /// <param name="TransactionRelationshipId">Id of TransactionRelationship</param> public void DeleteTransactionRelationshipRs(int Id) { TransactionRelationship deleteTransactionRelationshipRs = GetTransactionRelationshipById(Id); deleteTransactionRelationshipRs.IsDeleted = true; UpdateTransactionRelationship(deleteTransactionRelationshipRs); }
private void PayCreditCardExecute(object obj) { IEnumerable <Payment> pendingCreditCardPayments = m_transactionService.GetPendingCreditCardPayments(SelectedItem.AccountId); if (pendingCreditCardPayments.Any()) { IEnumerable <Transaction> paymentTransactions = pendingCreditCardPayments.Select(p => p.PaymentTransaction); if (m_transactionBatchCreateConfirmViewService.Show(paymentTransactions)) { m_transactionService.CreateMany(paymentTransactions); var newTransactionRelationships = new List <TransactionRelationship>(); foreach (Payment pendingCreditCardPayment in pendingCreditCardPayments) { var transactionRelationship = new TransactionRelationship { SourceTransaction = pendingCreditCardPayment.OriginalTransaction, DestinationTransaction = pendingCreditCardPayment.PaymentTransaction, Type = TransactionRelationshipType.CreditCardPayment }; newTransactionRelationships.Add(transactionRelationship); } m_transactionRelationshipService.CreateMany(newTransactionRelationships); } PopulateAccountTreeItems(); } else { m_noPendingCreditCardTrasnactionsViewService.Show(SelectedItem.Name); } }
/// <summary> /// Delete TransactionRelationship with specific id /// </summary> /// <param name="Id">TransactionRelationship Id</param> public void DeleteTransactionRelationship(int Id) { TransactionRelationship deletedTransactionRelationship = GetTransactionRelationshipById(Id); Context.TransactionRelationship.Remove(deletedTransactionRelationship); Context.Entry(deletedTransactionRelationship).State = EntityState.Deleted; Context.SaveChanges(); }
public static void CreateRelationship(TransactionRelationshipViewModel model) { TransactionRepository transactionRelationshipRepository = new Domain.Account.Repositories.TransactionRepository(new Domain.Account.ErpAccountDbContext()); var transactionRelationship = new TransactionRelationship(); AutoMapper.Mapper.Map(model, transactionRelationship); transactionRelationship.IsDeleted = false; transactionRelationship.CreatedUserId = WebSecurity.CurrentUserId; transactionRelationship.ModifiedUserId = WebSecurity.CurrentUserId; transactionRelationship.AssignedUserId = WebSecurity.CurrentUserId; transactionRelationship.CreatedDate = DateTime.Now; transactionRelationship.ModifiedDate = DateTime.Now; transactionRelationshipRepository.InsertTransactionRelationship(transactionRelationship); }
/// <summary> /// Update TransactionRelationship into database /// </summary> /// <param name="TransactionRelationship">TransactionRelationship object</param> public void UpdateTransactionRelationship(TransactionRelationship TransactionRelationship) { Context.Entry(TransactionRelationship).State = EntityState.Modified; Context.SaveChanges(); }
/// <summary> /// Insert TransactionRelationship into database /// </summary> /// <param name="TransactionRelationship">Object infomation</param> public void InsertTransactionRelationship(TransactionRelationship TransactionRelationship) { Context.TransactionRelationship.Add(TransactionRelationship); Context.Entry(TransactionRelationship).State = EntityState.Added; Context.SaveChanges(); }
public void TestCreateTransactionRelationship() { ILoggerFactory loggerFactory = new LoggerFactory(); using (var sqliteMemoryWrapper = new SqliteMemoryWrapper()) { var currencyFactory = new CurrencyFactory(); var usdCurrencyEntity = currencyFactory.Create(CurrencyPrefab.Usd, true); currencyFactory.Add(sqliteMemoryWrapper.DbContext, usdCurrencyEntity); var accountFactory = new AccountFactory(); Entities.Account checkingAccountEntity = accountFactory.Create(AccountPrefab.Checking, usdCurrencyEntity); Entities.Account rentPrepaymentAccountEntity = accountFactory.Create(AccountPrefab.RentPrepayment, usdCurrencyEntity); Entities.Account rentExpenseAccountEntity = accountFactory.Create(AccountPrefab.RentExpense, usdCurrencyEntity); Entities.Account creditCardAccountEntity = accountFactory.Create(AccountPrefab.CreditCard, usdCurrencyEntity); accountFactory.Add(sqliteMemoryWrapper.DbContext, checkingAccountEntity); accountFactory.Add(sqliteMemoryWrapper.DbContext, rentPrepaymentAccountEntity); accountFactory.Add(sqliteMemoryWrapper.DbContext, rentExpenseAccountEntity); accountFactory.Add(sqliteMemoryWrapper.DbContext, creditCardAccountEntity); var transactionEntities = new Entities.Transaction[] { new Entities.Transaction { CreditAccount = checkingAccountEntity, DebitAccount = rentPrepaymentAccountEntity, Amount = 60m, At = new DateTime(2018, 1, 1, 8, 31, 0) }, new Entities.Transaction { CreditAccount = creditCardAccountEntity, DebitAccount = rentExpenseAccountEntity, Amount = 10m, At = new DateTime(2018, 1, 1, 8, 32, 0) }, new Entities.Transaction { CreditAccount = rentPrepaymentAccountEntity, DebitAccount = creditCardAccountEntity, Amount = 10m, At = new DateTime(2018, 1, 1, 8, 33, 0) } }; sqliteMemoryWrapper.DbContext.Transactions.AddRange(transactionEntities); sqliteMemoryWrapper.DbContext.SaveChanges(); var checkingToRentPrepaymentRelationship = new Entities.AccountRelationship { SourceAccount = checkingAccountEntity, DestinationAccount = rentPrepaymentAccountEntity, Type = AccountRelationshipType.PhysicalToLogical }; var checkingToGroceriesPrepaymentRelationship = new Entities.AccountRelationship { SourceAccount = rentPrepaymentAccountEntity, DestinationAccount = rentExpenseAccountEntity, Type = AccountRelationshipType.PrepaymentToExpense }; sqliteMemoryWrapper.DbContext.AccountRelationships.Add(checkingToRentPrepaymentRelationship); sqliteMemoryWrapper.DbContext.AccountRelationships.Add(checkingToGroceriesPrepaymentRelationship); sqliteMemoryWrapper.DbContext.SaveChanges(); var transactionService = new TransactionService( loggerFactory, sqliteMemoryWrapper.DbContext ); var transactionRelationshipService = new TransactionRelationshipService( loggerFactory, sqliteMemoryWrapper.DbContext ); Transaction creditCardToExpenseTransaction = transactionService.Get(transactionEntities[1].TransactionId); Transaction prepaymentToCreditCardTransaction = transactionService.Get(transactionEntities[2].TransactionId); var newTransactionRelationship = new TransactionRelationship { SourceTransaction = creditCardToExpenseTransaction, DestinationTransaction = prepaymentToCreditCardTransaction, Type = TransactionRelationshipType.CreditCardPayment }; transactionRelationshipService.Create(newTransactionRelationship); List <Entities.TransactionRelationship> transactionRelationshipEntities = sqliteMemoryWrapper.DbContext.TransactionRelationships.ToList(); Assert.AreEqual(1, transactionRelationshipEntities.Count); Assert.AreEqual(newTransactionRelationship.TransactionRelationshipId, transactionRelationshipEntities[0].TransactionRelationshipId); Assert.AreEqual(newTransactionRelationship.SourceTransaction.TransactionId, transactionRelationshipEntities[0].SourceTransaction.TransactionId); Assert.AreEqual(newTransactionRelationship.DestinationTransaction.TransactionId, transactionRelationshipEntities[0].DestinationTransaction.TransactionId); Assert.AreEqual(newTransactionRelationship.Type, transactionRelationshipEntities[0].Type); } }