Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
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));
        }