Example #1
0
        public void AddHolder(HolderItem holder)
        {
            bool isExisted = false;

            foreach (var h in _holders)
            {
                //if (h.StockHolderId == holder.StockHolderId)
                //{
                //    isExisted = true;
                //    break;
                //}

                if (h.AccountCode == holder.AccountCode &&
                    h.AssetNo == holder.AssetNo &&
                    h.CombiNo == holder.CombiNo &&
                    h.MarketNo == holder.MarketNo)
                {
                    isExisted = true;
                    break;
                }
            }

            if (!isExisted)
            {
                _holders.Add(holder);
            }
        }
Example #2
0
        public HolderItem GetHolder(string holderId)
        {
            HolderItem holder = new HolderItem();

            foreach (var h in _holders)
            {
                if (h.StockHolderId == holderId)
                {
                    holder = h;
                    break;
                }
            }

            return(holder);
        }
Example #3
0
        public HolderItem GetHolder(string combiNo, string marketNo)
        {
            HolderItem holder  = new HolderItem();
            var        ports   = _holders.Where(p => p.CombiNo == combiNo).ToList();
            var        markets = ports.Where(p => p.MarketNo == marketNo).ToList();

            foreach (var h in _holders)
            {
                if (h.CombiNo == combiNo && h.MarketNo == marketNo)
                {
                    holder = h;
                    break;
                }
            }

            return(holder);
        }
Example #4
0
        public ConnectionCode QueryHolder()
        {
            UFXFunctionCode functionCode = UFXFunctionCode.QueryHolder;
            FunctionItem    functionItem = ConfigManager.Instance.GetFunctionConfig().GetFunctionItem(functionCode);

            if (functionItem == null || functionItem.RequestFields == null || functionItem.RequestFields.Count == 0)
            {
                return(ConnectionCode.ErrorLogin);
            }

            CT2BizMessage bizMessage = new CT2BizMessage();

            //初始化
            bizMessage.SetFunction((int)functionCode);
            bizMessage.SetPacketType(CT2tag_def.REQUEST_PACKET);

            //业务包
            CT2Packer packer = new CT2Packer(2);

            packer.BeginPack();
            foreach (FieldItem item in functionItem.RequestFields)
            {
                packer.AddField(item.Name, item.Type, item.Width, item.Scale);
            }

            foreach (FieldItem item in functionItem.RequestFields)
            {
                switch (item.Name)
                {
                case "user_token":
                    packer.AddStr(LoginManager.Instance.LoginUser.Token);
                    break;

                case "account_code":
                    packer.AddStr("");
                    break;

                case "asset_no":
                    packer.AddStr("");
                    break;

                case "combi_no":
                    packer.AddStr("");
                    break;

                case "market_no":
                    packer.AddStr("");
                    break;

                default:
                    break;
                }
            }

            packer.EndPack();

            unsafe
            {
                bizMessage.SetContent(packer.GetPackBuf(), packer.GetPackLen());
            }

            var parser = _t2SDKWrap.SendSync2(bizMessage);

            packer.Dispose();
            bizMessage.Dispose();

            if (parser.ErrorCode != ConnectionCode.Success)
            {
                UFXLogger.Error(logger, functionCode, "交易股东查询失败");
                return(parser.ErrorCode);
            }

            var response = T2ErrorHandler.Handle(parser);

            if (T2ErrorHandler.Success(response.ErrorCode))
            {
                if (parser.DataSets.Count > 1)
                {
                    var dataSet = parser.DataSets[1];
                    foreach (var dataRow in dataSet.Rows)
                    {
                        HolderItem p = new HolderItem();
                        p.AccountCode   = dataRow.Columns["account_code"].GetStr();
                        p.AssetNo       = dataRow.Columns["asset_no"].GetStr();
                        p.CombiNo       = dataRow.Columns["combi_no"].GetStr();
                        p.StockHolderId = dataRow.Columns["stockholder_id"].GetStr();
                        p.MarketNo      = dataRow.Columns["market_no"].GetStr();

                        LoginManager.Instance.AddHolder(p);
                    }
                }

                return(ConnectionCode.Success);
            }
            else
            {
                UFXLogger.Error(logger, functionCode, response);
                return(ConnectionCode.ErrorFailContent);
            }
        }