public void TestAccountCRUD() { // 删除无用的测试数据 List<Account> list = Account.Query("code = 'testcode'"); foreach (Account acc in list) { Assert.IsTrue(acc.Destory()); } GlobalSet.Current_User = User.Query()[0]; // 新增 Account a = new Account(); a.In_CompanyDetail_ID = CompanyDetail.Query("parent_id in (select id from m_company where input = 'X')")[0].ID; a.Out_CompanyDetail_ID = CompanyDetail.Query("parent_id in (select id from m_company where output = 'X')")[0].ID; a.Money = 12345; a.SignedDate = DateTime.Now; for (int i = 1; i < 10; i ++ ) { AccountDetail d = new AccountDetail(); d.FundsID = Funds.Query()[0].ID; d.Money = i; d.Usage = i.ToString(); a.DetailList.Add(d); } Assert.IsTrue(a.Save()); Assert.IsTrue(a.ID > 0); // 查询 list = Account.Query(string.Format("id = {0}", a.ID)); Assert.IsTrue(list.Count == 1); Assert.IsTrue(list[0].ID == a.ID); Assert.IsTrue(list[0].DetailList.Count == 9); // 删除 Assert.IsTrue(list[0].Destory()); list = Account.Query(string.Format("id = {0}", list[0].ID)); Assert.IsTrue(list.Count == 0); }
public async Task <IActionResult> DeleteCustomerAccount([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } int accountRateCount = (int)Database.AccountRates .Where(accountRateItem => accountRateItem.CustomerAccountId == id).Count(); while (accountRateCount > 0) { AccountRate oneAccountRate = (AccountRate)Database.AccountRates .Where(accountRateItem => accountRateItem.CustomerAccountId == id).FirstOrDefault(); try { try { Database.AccountRates.Remove(oneAccountRate); } catch (DbUpdateException ex) { //databaseInnerExceptionMessage = ex.InnerException.Message; //status = false; //messages.Add(databaseInnerExceptionMessage); //return new JsonResult(response); } } catch (Exception outerException) { //object httpFailRequestResultMessage = new { message = "Unable to delete account rate record." +outerException }; ////Return a bad http request message to the client //return BadRequest(httpFailRequestResultMessage); } accountRateCount--; } int accountDetailCount = (int)Database.AccountDetails .Where(accountDetailItem => accountDetailItem.CustomerAccountId == id).Count(); while (accountDetailCount > 0) { AccountDetail oneAccountDetail = (AccountDetail)Database.AccountDetails .Where(accountDetailItem => accountDetailItem.CustomerAccountId == id).FirstOrDefault(); try { try { Database.AccountDetails.Remove(oneAccountDetail); } catch (DbUpdateException ex) { //databaseInnerExceptionMessage = ex.InnerException.Message; //status = false; //messages.Add(databaseInnerExceptionMessage); //return new JsonResult(response); } } catch (Exception outerException) { //object httpFailRequestResultMessage = new { message = "Unable to delete account details record." +outerException }; ////Return a bad http request message to the client //return BadRequest(httpFailRequestResultMessage); } accountDetailCount--; } var customerAccount = await Database.CustomerAccounts.SingleOrDefaultAsync(m => m.CustomerAccountId == id); if (customerAccount == null) { object httpFailRequestResultMessage = new { message = "Unable to delete customer account." }; //Return a bad http request message to the client return(BadRequest(httpFailRequestResultMessage)); } Database.CustomerAccounts.Remove(customerAccount); await Database.SaveChangesAsync(); object response = new { status = "success", message = "Deleted customer account." }; return(new JsonResult(response)); }