public void Initialize() { repository = container.Resolve <IBalanceDateRepository>(); balanceDateFactory = container.Resolve <IBalanceDateFactory>(); testEntity = balanceDateFactory.Create(); testEntity.DateOfBalance = DateTime.Today; testEntity.BalanceDateBankAccounts.AddRange(new List <Core.Entities.BalanceDateBankAccount>() { new Core.Entities.BalanceDateBankAccount() { BankAccount = new Core.Entities.BankAccount() { BankAccountId = 1 }, BalanceAmount = 123 }, new Core.Entities.BalanceDateBankAccount() { BankAccount = new Core.Entities.BankAccount() { BankAccountId = 2 }, BalanceAmount = 456 }, }); }
private void CompareBalanceDates(Core.Entities.BalanceDate entity1, Core.Entities.BalanceDate entity2, string prefix) { Assert.IsNotNull(entity1, "{0} - entity1", prefix); Assert.IsNotNull(entity2, "{0} - entity2", prefix); Assert.AreEqual(entity1.DateOfBalance, entity2.DateOfBalance, "{0} - DateOfBalance", prefix); Assert.AreEqual(entity1.BalanceDateBankAccounts.Count, entity2.BalanceDateBankAccounts.Count, "{0} - BalanceDateBankAccounts.Count", prefix); for (int i = 0; i < entity1.BalanceDateBankAccounts.Count; i++) { CompareBalanceDateBankAccounts(entity1.BalanceDateBankAccounts[i], entity2.BalanceDateBankAccounts[i], String.Format("{0} - BalanceDateBankAccounts[{1}]", prefix, i)); } }
public bool Delete(Core.Entities.BalanceDate entity) { var ef = mapper.Map <BalanceDate>(entity); //need to delete children to prevent EF FK error ef.BalanceDateBankAccounts.Clear(); using (FinanceEntities context = factory.CreateContext()) { context.Entry(ef).State = EntityState.Deleted; // deletes are cascaded to BalanceBankAccount context.SaveChanges(); } return(true); }
public Core.Entities.BalanceDate Read(int id) { Core.Entities.BalanceDate entity = null; using (FinanceEntities context = factory.CreateContext()) { var ef = ReadQuery(context, id).FirstOrDefault(); //var ef = (from b in context.BalanceDates // .Include(a => a.BalanceDateBankAccounts) // .Include("BalanceDateBankAccounts.BankAccount") // .Include("BalanceDateBankAccounts.BankAccount.Bank") // where b.BalanceDateId==id // select b).FirstOrDefault(); entity = mapper.Map <Core.Entities.BalanceDate>(ef); } return(entity); }
public void Initialize() { repository = container.Resolve<IBalanceDateRepository>(); balanceDateFactory = container.Resolve<IBalanceDateFactory>(); testEntity = balanceDateFactory.Create(); testEntity.DateOfBalance = DateTime.Today; testEntity.BalanceDateBankAccounts.AddRange(new List<Core.Entities.BalanceDateBankAccount>() { new Core.Entities.BalanceDateBankAccount() { BankAccount = new Core.Entities.BankAccount() { BankAccountId=1 }, BalanceAmount = 123 }, new Core.Entities.BalanceDateBankAccount() { BankAccount = new Core.Entities.BankAccount() { BankAccountId=2 }, BalanceAmount = 456 }, }); }
public int Add(Core.Entities.BalanceDate entity) { int id = 0; var ef = mapper.Map <BalanceDate>(entity); using (FinanceEntities context = factory.CreateContext()) { context.Entry(ef).State = EntityState.Added; context.SaveChanges(); } //read back columns which may have changed entity.BalanceDateId = ef.BalanceDateId; entity.RecordCreatedDateTime = ef.RecordCreatedDateTime; //entity.RecordUpdatedDateTime = ef.RecordUpdatedDateTime; int i = 0; foreach (var cba in ef.BalanceDateBankAccounts) { if (entity.BalanceDateBankAccounts.Count <= i) { break; } var e = entity.BalanceDateBankAccounts[i]; e.BalanceDateBankAccountId = cba.BalanceDateBankAccountId; e.RecordCreatedDateTime = cba.RecordCreatedDateTime; i++; } id = ef.BalanceDateId; return(id); }
public bool Update(Core.Entities.BalanceDate entity) { var ef = mapper.Map <BalanceDate>(entity); using (FinanceEntities context = factory.CreateContext()) { // read in children var cbas = from b in context.BalanceDateBankAccounts where b.BalanceDateId == ef.BalanceDateId select b; foreach (var cba in cbas) { if (ef.BalanceDateBankAccounts.Count(a => a.BalanceDateBankAccountId == cba.BalanceDateBankAccountId) == 0) { context.Entry(cba).State = EntityState.Deleted; } else { context.Entry(cba).State = EntityState.Detached; } } foreach (var cba in ef.BalanceDateBankAccounts) { if (cba.BalanceDateBankAccountId > 0) { context.Entry(cba).State = EntityState.Modified; } else { context.Entry(cba).State = EntityState.Added; } } context.Entry(ef).State = EntityState.Modified; var s = ShowEntityStates(context); context.SaveChanges(); } //read back data which may have changed //entity.RecordUpdatedDateTime = ef.RecordUpdatedDateTime; int i = 0; foreach (var cba in ef.BalanceDateBankAccounts) { if (entity.BalanceDateBankAccounts.Count <= i) { break; } var e = entity.BalanceDateBankAccounts[i]; e.BalanceDateBankAccountId = cba.BalanceDateBankAccountId; e.RecordCreatedDateTime = cba.RecordCreatedDateTime; i++; } return(true); }