/// <summary>
 /// 调用自由转帐(同币种)方法
 /// </summary>
 /// <param name="traderID">交易员ID</param>
 /// <param name="FromCapitalAccount">转出资金账户类型</param>
 /// <param name="ToCapitalAccount">转入资金账户类型</param>
 /// <param name="TransferAmount">转账数量</param>
 /// <param name="couterID">柜台ID</param>
 /// <param name="currencyType">当前币种类型</param>
 /// <param name="outMessage">输出参数</param>
 /// <returns>返回true或false</returns>
 public bool ConvertFreeTransferEntity(int traderID, int FromCapitalAccount, int ToCapitalAccount, decimal TransferAmount, int currencyType, int couterID, out string outMessage)
 {
     try
     {
         FreeTransferEntity freeTransferEntity = new FreeTransferEntity();
         freeTransferEntity.TraderID = traderID.ToString();
         freeTransferEntity.FromCapitalAccountType = FromCapitalAccount;
         freeTransferEntity.ToCapitalAccountType   = ToCapitalAccount;
         freeTransferEntity.TransferAmount         = TransferAmount;
         TypesCurrencyType _currencyType = (TypesCurrencyType)currencyType;
         bool _result = TwoAccountsFreeTransferFunds(freeTransferEntity, _currencyType, couterID, out outMessage);
         if (_result)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         outMessage = "调用自由转帐(同币种)方法出错!";
         LogHelper.WriteError(ex.ToString(), ex.InnerException);
         return(false);
     }
 }
        /// <summary>
        /// 自由转帐(同币种)
        /// </summary>
        /// <param name="freeTransfer"> 自由转账实体</param>
        /// <param name="currencyType">当前币种类型</param>
        /// <param name="couterID">柜台ID</param>
        /// <param name="outMessage">输出信息</param>
        /// <returns></returns>
        public bool TwoAccountsFreeTransferFunds(FreeTransferEntity freeTransfer, TypesCurrencyType currencyType, int couterID,
                                                 out string outMessage)
        {
            try
            {
                CT_Counter T       = StaticDalClass.CounterDAL.GetModel(couterID);
                bool       _Result =
                    ServiceIn.AccountManageServiceProxy.GetInstance().TwoAccountsFreeTransferFunds(T, freeTransfer,
                                                                                                   currencyType, out outMessage);


                if (_Result == false)
                {
                    if (!string.IsNullOrEmpty(outMessage))
                    {
                        //outMessage = "GL-:调用柜台自由转帐(同币种)方法TwoAccountsFreeTransferFunds失败!";// +s; //写调试信息
                        LogHelper.WriteDebug(outMessage);
                    }
                    return(false);
                }
                return(true);
            }
            catch (VTException ex)
            {
                outMessage = "GL-0234:调用柜台自由转帐(同币种)方法TwoAccountsFreeTransferFunds失败!";
                LogHelper.WriteError(ex.ToString() + outMessage, ex.InnerException);
                //写错误信息
                return(false);
            }
        }
        public void TwoAccountsFreeTransferFundsTest()
        {
            AccountAndCapitalManagementService target = new AccountAndCapitalManagementService();                               // TODO: 初始化为适当的值
            FreeTransferEntity freeTransfer           = null;                                                                   // TODO: 初始化为适当的值

            GTA.VTS.Common.CommonObject.Types.CurrencyType currencyType = new GTA.VTS.Common.CommonObject.Types.CurrencyType(); // TODO: 初始化为适当的值
            string outMessage         = string.Empty;                                                                           // TODO: 初始化为适当的值
            string outMessageExpected = string.Empty;                                                                           // TODO: 初始化为适当的值
            bool   expected           = false;                                                                                  // TODO: 初始化为适当的值
            bool   actual;

            actual = target.TwoAccountsFreeTransferFunds(freeTransfer, currencyType, out outMessage);
            Assert.AreEqual(outMessageExpected, outMessage);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("验证此测试方法的正确性。");
        }
Example #4
0
        /// <summary>
        /// 根据帐户类型和交易员ID找出对应的帐户和帐户所属类型
        /// </summary>
        /// <param name="freeTransfer">转帐实体</param>
        /// <param name="outMessage"></param>
        public static bool AccountTransferEntityChange(ref FreeTransferEntity freeTransfer, ref string outMessage)
        {
            string where = string.Format("UserID = '{0}' AND AccountTypeLogo= '{1}'", freeTransfer.TraderID, freeTransfer.FromCapitalAccountType);
            UA_UserAccountAllocationTableDal         dal             = new UA_UserAccountAllocationTableDal();
            List <UA_UserAccountAllocationTableInfo> AccountListFrom = dal.GetListArray(where);

            if (AccountListFrom == null || AccountListFrom.Count < 1)
            {
                outMessage = "转出资金帐号不存在";
                return(false);
            }
            if (AccountListFrom[0].WhetherAvailable == false)
            {
                outMessage = "转出资金帐户被冻结,不能转帐";
                return(false);
            }

            where = string.Format("UserID = '{0}' AND AccountTypeLogo= '{1}'", freeTransfer.TraderID, freeTransfer.ToCapitalAccountType);
            List <UA_UserAccountAllocationTableInfo> AccountListTo = dal.GetListArray(where);

            if (AccountListTo == null || AccountListTo.Count < 1)
            {
                outMessage = "转入资金帐号不存在";
                return(false);
            }
            if (AccountListTo[0].WhetherAvailable == false)
            {
                outMessage = "转入资金帐户被冻结,不能转帐";
                return(false);
            }

            BD_AccountTypeDal  acTypeDal         = new BD_AccountTypeDal();
            BD_AccountTypeInfo FrombdAccountType = acTypeDal.GetModel(freeTransfer.FromCapitalAccountType);
            BD_AccountTypeInfo TobdAccountType   = acTypeDal.GetModel(freeTransfer.ToCapitalAccountType);

            if (FrombdAccountType == null || TobdAccountType == null)
            {
                outMessage = "帐号所属类型匹配失败";
                return(false);
            }
            freeTransfer.FromCapitalAccount = AccountListFrom[0].UserAccountDistributeLogo;
            freeTransfer.ToCapitalAccount   = AccountListTo[0].UserAccountDistributeLogo;
            //freeTransfer.FromCapitalAccountType = (int)FrombdAccountType.ATCId;
            //freeTransfer.ToCapitalAccountType = (int)TobdAccountType.ATCId;
            return(true);
        }
 /// <summary>
 /// 自由转帐(同币种)
 /// </summary>
 /// <param name="CT">柜台表</param>
 /// <param name="freeTransfer"> 自由转账实体</param>
 /// <param name="currencyType">当前币种类型</param>
 /// <param name="outMessage">输出信息</param>
 /// <returns></returns>
 public bool TwoAccountsFreeTransferFunds(CT_Counter CT, FreeTransferEntity freeTransfer, TypesCurrencyType currencyType,
                                          out string outMessage)
 {
     try
     {
         using (AccountAndCapitalManagementClient client = GetClient(CT))
         {
             //string mess;
             return(client.TwoAccountsFreeTransferFunds(out outMessage, freeTransfer, currencyType));
         }
     }
     catch (Exception ex)
     {
         string      errCode = "GL-8112";
         string      errMsg  = "调用清算柜台提供的TwoAccountsFreeTransferFunds()方法异常," + ex.Message;
         VTException vte     = new VTException(errCode, errMsg, ex);
         LogHelper.WriteError(vte.ToString(), vte.InnerException);
         throw vte;
     }
 }