Ejemplo n.º 1
0
        public int SubscribeCodes(string username, string[] codelist)
        {
            if (_dataAdapter != null)
            {
                List <string> subcodes = new List <string>();
                for (int i = 0; i < codelist.Length; i++)
                {
                    string code = codelist[i];
                    if (_codes.ContainsKey(code))
                    {
                        //更新代码时间
                        SubCode sc = _codes[code];
                        sc.Flush(username);
                    }
                    else
                    {
                        //添加代码
                        if (StockCodeManager.GetInstance.Codes.ContainsKey(code))
                        {
                            //有效代码
                            SubCode sc = new SubCode();
                            sc.Code      = code;
                            sc.Name      = StockCodeManager.GetInstance.GetStockName(code);
                            sc.SubTime   = DateTime.Now;
                            sc.FlushTime = DateTime.Now;
                            sc.Users.Add(username);

                            _codes.Add(code, sc);
                            subcodes.Add(code);
                        }
                    }
                }
                if (_clients.ContainsKey(username))
                {
                    //为用户添加订阅代码
                    _clients[username].AddSubCodes(codelist.ToList <string>());
                }
                else
                {
                    //添加用户信息
                    UserClient uc = new UserClient();
                    uc.Username = username;
                    uc.AddSubCodes(codelist.ToList <string>());
                    _clients.Add(username, uc);
                }

                if (subcodes.Count > 0)
                {
                    //添加数据源的订阅代码
                    _dataAdapter.RegisterCodes(subcodes);
                    App.Logger.Info(string.Format("DataService:用户{0}添加订阅,订阅列表:{1}", username, string.Join(",", subcodes)));
                }

                return(subcodes.Count);
            }

            return(0);
        }