private List <StockCode> GetStockCodes() { try { if (_stockCodes.Count > 0) { return(_stockCodes.Values.ToList <StockCode>()); } DataServantPrx prx = GetDataServant(); if (prx != null) { DSIceStockCode[] arr; var re = prx.GetStockCodes(out arr); Program.logger.LogRunning("DataServerClient:获取全市场股票代码成功,股票总数:{0}", arr.Length); foreach (var item in arr) { var stockCodeItem = new StockCode(item); _stockCodes.Add(stockCodeItem.Code, stockCodeItem); } return(_stockCodes.Values.ToList()); } } catch (Exception ex) { Program.logger.LogRunning("DataServerClient:GetStockCodes调用失败\r\n Message:{0}.\r\n StackTrace:{1}", ex.Message, ex.StackTrace); } return(new List <StockCode>()); }
public List <StockCode> GetStockCodes() { try { if (_stockCodes.Count > 0) { return(_stockCodes.Values.ToList <StockCode>()); } DataServantPrx prx = GetDataServant(); if (prx != null) { DSIceStockCode[] codes; int retval = prx.GetStockCodes(out codes); if (retval > 0 && codes != null) { foreach (DSIceStockCode code in codes) { StockCode sc = new StockCode(code); if (_stockCodes.ContainsKey(sc.Code) == false) { _stockCodes.Add(sc.Code, sc); } } } return(_stockCodes.Values.ToList <StockCode>()); } } catch (Exception ex) { AASClient.Program.logger.LogRunning("DataServerClient:GetStockCodes调用失败\n{0}", ex.Message); } return(new List <StockCode>()); }
public static StockCode GetStockCode(string stockStockCode) { StockCode stockCode = new StockCode(); int iIndex = stockStockCode.IndexOf('['); stockCode.StockName = stockStockCode.Substring(0, iIndex); stockCode.StockSymbol = stockStockCode.Substring(iIndex + 1, (stockStockCode.Length - 1) - (iIndex + 1)); return(stockCode); }
public int insertStockCode(StockCode stockInfo) { if (string.IsNullOrWhiteSpace(stockInfo.stockCode) || string.IsNullOrWhiteSpace(stockInfo.stockName)) { return(-1); } string query = Properties.Resources.insertStockCode; query = string.Format(query, stockInfo.stockCode, stockInfo.stockName); return(Execute(query)); }
private List <StockCode> getETFStocks(DateTime date, string index) { var rawData = windReader.GetDataSetTable("etfconstituent", string.Format("date={0};windcode={1};field=wind_code,sec_name", date.Date, index)); List <StockCode> codeList = new List <StockCode>(); foreach (DataRow dr in rawData.Rows) { StockCode stock = new StockCode(); stock.code = Convert.ToString(dr[0]); stock.name = Convert.ToString(dr[1]); codeList.Add(stock); } return(codeList); }
public string transmitData(string query) // convert to json { User user = new User(); StockCode stockCode = new StockCode(); List <Database> stockList = user.readDatabase(); List <String> list = new List <String>(); OrderedDictionary dict = new OrderedDictionary(); // Remove Whitespaces and double entries for (int id = 0; id < stockList.Count; id++) { string name = stockList[id].Name.ToLower(); string trimmed = String.Concat( name.Where(c => !Char.IsWhiteSpace(c)) //.Where(c => !Char.IsLetter('-') || !Char.IsLetter('&')) ); // Console.WriteLine(trimmed); if (trimmed.Contains(query)) { if (!list.Contains(name)) { list.Add(name); dict.Add(id, name); } } } // Add to the array int pointer = 0; string res = ""; string[] arr = new string[dict.Count]; foreach (DictionaryEntry de in dict) { res += ((int)de.Key).ToString(); // StockCode res += ","; res += (string)de.Value; // Id arr[pointer] = res; res = ""; pointer++; } // Return JSON stockCode.stockCode = arr; string data = JsonSerializer.Serialize(stockCode); return(data); }
public StockCode 종목정보조회(StockCode stockInfo) { //string query = Properties.Resources.getStockCode; //query = string.Format(query, stockInfo.stockCode, stockInfo.stockName); //return QuerySingle<StockCode>(query); DynamicParameters p = new DynamicParameters(); p.Add("@sCode", stockInfo.stockCode); p.Add("@sName", stockInfo.stockName); StockCode result = QuerySingle <StockCode>("SP_종목정보조회", p); return(result); }
/// <summary> /// 검색버튼 클릭 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSearch_Click(object sender, EventArgs e) { // 자료 조회 // 조회URL: stockcode/?search=검색어 HttpRestClient client = new HttpRestClient("stockcode"); // 조회조건 if (txtSearch.Text.Length > 0) { client.QueryString.Add("search", txtSearch.Text); } if (!client.doWorkDialog()) { client.showErrorDialog(); return; } // 응답 데이터 처리 StockCode data = JsonConvert.DeserializeObject <StockCode>(client.getString()); // 리스트뷰 뷰 타입 listView1.View = View.Details; // 데이터를 갱신하기 전에 UI쓰레드를 멈춘다. listView1.BeginUpdate(); // 컬럼헤더 Clear listView1.Columns.Clear(); listView1.Columns.Add("stockCode", "종목코드", 5 * 15); listView1.Columns.Add("stockName", "종목명", 9 * 15); listView1.Columns.Add("stockCate", "소속업종", 9 * 15); // 종목코드 찾음, 없을경우 새 row에 등록 listView1.Items.Clear(); foreach (StockCodeItem item in data.dataList) { ListViewItem listItem = new ListViewItem(item.stockCode); listItem.Name = item.stockCode; listItem.SubItems.Add(item.stockName); listItem.SubItems.Add(item.cateName); listView1.Items.Add(listItem); } // UI 쓰레드 재개 listView1.EndUpdate(); }
public void AddOrUpdateStockPriceInExchange(EquitySymbolQuote stockPrice) { // do data consistency checks if (StockCode.CompareTo(stockPrice.StockCode) != 0) { throw new Exception("Equity StockPrice info's stock code doesnt match the holding StockInfo"); } if (StockPrice.ContainsKey(stockPrice.Exchange)) { StockPrice[stockPrice.Exchange] = stockPrice; } else { EquitySymbolQuote tmpStockPrice = stockPrice; StockPrice.Add(stockPrice.Exchange, stockPrice); } }
public static StockCode GetStockCode( string stockStockCode ) { StockCode stockCode = new StockCode(); int iIndex = stockStockCode.IndexOf( '[' ); stockCode.StockName = stockStockCode.Substring( 0, iIndex ); stockCode.StockSymbol = stockStockCode.Substring( iIndex + 1, ( stockStockCode.Length - 1 ) - ( iIndex + 1 ) ); return stockCode; }
private void axKHOpenAPI1_OnEventConnect(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnEventConnectEvent e) { try { if (e.nErrCode == 0) { string accountlist = axKHOpenAPI1.GetLoginInfo("ACCLIST"); string[] account = accountlist.Split(';'); for (int i = 0; i < account.Length; i++) { comboBox1.Items.Add(account[i]); } if (account.Length > 0) { comboBox1.SelectedIndex = 0; } string userId = axKHOpenAPI1.GetLoginInfo("USER_ID"); string userName = axKHOpenAPI1.GetLoginInfo("USER_NAME"); string connectedServer = axKHOpenAPI1.GetLoginInfo("GetServerGubun"); lblUserID.Text = userId; lblUserName.Text = userName; lblServerNo.Text = connectedServer; string stockCode = axKHOpenAPI1.GetCodeListByMarket("0"); string[] stockCodeArray = stockCode.Split(';'); lblCountOfStocks.Text = stockCodeArray.Length.ToString(); for (int i = 0; i < stockCodeArray.Length; i++) { StockCode code = new StockCode(); code.stockCode = stockCodeArray[i]; code.stockName = axKHOpenAPI1.GetMasterCodeName(stockCodeArray[i]); biz.stockList.Add(code); } Biz.AccountNo = comboBox1.SelectedItem.ToString(); if (string.IsNullOrEmpty(Biz.AccountNo)) { MessageBox.Show("계좌가 존재하지 않음!!!"); return; } if ("Auto".Equals(ExecuteMode)) { button3_Click(null, null); this.backgroundWorker1.RunWorkerAsync(10000); } else if ("SetTarget".Equals(ExecuteMode)) { trBiz.당일거래량상위요청("1", "3"); } } else { MessageBox.Show("연결오류"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public StockMovement(DateTime withdrawDate, decimal price, StockCode stockCode, decimal volume) : base(withdrawDate, price, volume) { _stockCode = stockCode; }
/// <summary> /// 读取证券代码表 /// </summary> /// <returns></returns> public DataTable GetStockCode() { //代码表文件的完整路径 string filePath = DataPath + Market + "\\STKINFO70.DAT"; //判断文件是否存在 this.CheckFile(filePath); if (message == filePath + "文件不存在") { return(null); } //建立存放代码表的Datatable DataTable dtCode = new DataTable(); dtCode.Columns.Add("证券代码", typeof(string)); dtCode.Columns.Add("证券名称", typeof(string)); dtCode.Columns.Add("速记码", typeof(string)); //打开数据文件,建立文件流 FileStream fs = null; BinaryReader br = null; try { fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); br = new BinaryReader(fs); } catch { message = "读取文件" + filePath + "失败"; return(null); } finally { message = "读取文件" + filePath + "成功"; } //存放代码的开始位置 int startAddress = 0x44A6; //每个代码块的大小 int recordSize = 320; //从起始位置开始读,12开始的4个字节为代码表总数 fs.Position = 0xC;// 12; //文件中证券总数 int stockCount = br.ReadInt32(); for (int i = 0; i < stockCount; i++) { //实例化一个证券代码 StockCode sc = new StockCode(); //文件流的位置,开始位置+第几块*每块大小 fs.Position = startAddress + i * recordSize; //证券代码,10个字节,后面是\0,去掉 sc.code = this.Market + System.Text.Encoding.Default.GetString(br.ReadBytes(10)).Replace("\0", ""); if (string.IsNullOrEmpty(sc.code)) { break; } //以下代码有点冗余,有空再改 //判断该代码是否是需要的编码开头的代码 foreach (string s in this.SegularCode.Split(new string[] { "," }, StringSplitOptions.None)) { if (sc.code.Substring(0, s.Length) == s) { //证券名称,32个字节 sc.name = System.Text.Encoding.Default.GetString(br.ReadBytes(32)).Replace("\0", ""); //速记码 sc.sjm = ChinesePinYin.GetChineseSpell(sc.name); //将代码信息保存到表中 DataRow dRow = dtCode.NewRow(); dRow["证券代码"] = sc.code; dRow["证券名称"] = sc.name; dRow["速记码"] = sc.sjm; dtCode.Rows.Add(dRow); } } //判断该代码是否是指定的代码,如指数 foreach (string s in this.SegularCode.Split(new string[] { "," }, StringSplitOptions.None)) { if (sc.code == s) { //证券名称,32个字节 sc.name = System.Text.Encoding.Default.GetString(br.ReadBytes(32)).Replace("\0", ""); //将代码信息保存到表中 DataRow dRow = dtCode.NewRow(); dRow["证券代码"] = sc.code; dRow["证券名称"] = sc.name; dRow["速记码"] = ChinesePinYin.GetChineseSpell(sc.name); dtCode.Rows.Add(dRow); } } } br.Close(); fs.Close(); fs.Dispose(); return(dtCode); }
public async Task <ActionResult> Index() { #region get user info ViewBag.AbsolutePathHostName = AppHelper.AbsolutePathHostName; var company = new StockCode(); //ApplicationUser currentUser = await UserManager.FindByIdAsync(User.Identity.GetUserId()); UserLoginDTO currentUser = await(from userlog in db.UserLogins where userlog.UserNameCopy == User.Identity.Name select new UserLoginDTO { Id = userlog.Id, CharacterLimit = userlog.CharacterLimit, FullName = userlog.FullName, AvataImage = userlog.AvataImage, AvataCover = userlog.AvataCover, BrokerVIP = userlog.BrokerVIP }).FirstOrDefaultAsync(); #endregion #region Thong tin menu ben trai //Thong tin menu ben trai var post = await db.Posts.CountAsync(p => p.PostedBy == currentUser.Id); var follow = await db.FollowUsers.CountAsync(f => f.UserId == currentUser.Id); var follower = await db.FollowUsers.CountAsync(f => f.UserIdFollowed == currentUser.Id); ViewBag.TotalPost = post; ViewBag.Follow = follow; ViewBag.Follower = follower; ViewBag.CureentUserId = currentUser.Id; ViewBag.CharacterLimit = currentUser.CharacterLimit; ViewBag.UserName = User.Identity.Name; ViewBag.FullName = currentUser.FullName; ViewBag.AvataEmage = string.IsNullOrEmpty(currentUser.AvataImage) == true ? AppHelper.ImageURLAvataDefault : AppHelper.ImageURLAvata + currentUser.AvataImage; ViewBag.CoverImage = string.IsNullOrEmpty(currentUser.AvataCover) == true ? AppHelper.ImageURLCoverDefault : AppHelper.ImageURLCover + currentUser.AvataCover; // cac post duoc loc tu danh muc nguoi theo doi => dc load o duoi client san var listPersonFollow = await(from userFollow in db.FollowUsers where userFollow.UserId == currentUser.Id select userFollow.UserIdFollowed ).ToArrayAsync(); ViewBag.ListFollow = listPersonFollow as int[]; //client // cac post dc loc tu danh muc dau tu => dc load o duoc client san var listStock = await(from followStock in db.FollowStocks orderby followStock.StockFollowed ascending where followStock.UserId == currentUser.Id select followStock.StockFollowed).ToListAsync(); ViewBag.listStockFollow = listStock as List <string>; // load o cliet // End thong tin menu ben trai //so luong tin cua User var numberMessegeNew = db.NotificationMesseges.Where(nm => nm.UserReciver == currentUser.Id && nm.NumNoti > 0).Sum(mn => mn.NumNoti); ViewBag.NewMessege = numberMessegeNew; #endregion #region danh muc co phieu dang follow ViewBag.listStockPriceFollow = _stockRealtime.GetAllStocksList(listStock as List <string>).Result; #endregion #region gia chi so index va hnxindex var listIndex = new List <string>(); listIndex.Add("VNINDEX"); listIndex.Add("HNXINDEX"); ViewBag.ListIndex = _stockRealtime.GetAllStocksList(listIndex).Result; #endregion #region Set Info of hot stock ViewBag.ListStockHot = AppHelper.GetListHotStock(); #endregion return(View(currentUser)); }
public async Task <ViewResult> Index(string symbolName) { //ApplicationUser currentUser = await UserManager.FindByIdAsync(User.Identity.GetUserId()); ViewBag.AbsolutePathHostName = AppHelper.AbsolutePathHostName; #region danh muc co phieu dang follow var postNumber = await db.Posts.CountAsync(s => s.StockPrimary.Contains(symbolName)); // so luong bai viet cua cổ phiếu này var stockFollowNumber = await db.FollowStocks.CountAsync(sf => sf.StockFollowed == symbolName); // bao nhieu nguoi da theo doi co phieu nay ViewBag.PostNumber = postNumber; ViewBag.StockFollowNumber = stockFollowNumber; // function follow stock if (User.Identity.IsAuthenticated) { ApplicationUser currentUser = await UserManager.FindByIdAsync(User.Identity.GetUserId()); var countStockFollowr = await db.FollowStocks.CountAsync(f => f.UserId == currentUser.UserExtentLogin.Id && f.StockFollowed == symbolName); if (countStockFollowr == 1) // kiem tra user nay co follow ma nay khong { ViewBag.CheckStockExist = "Y"; } else { ViewBag.CheckStockExist = "N"; } // so luong tin nhan var numberMessegeNew = await db.NotificationMesseges.Where(nm => nm.UserReciver == currentUser.UserExtentLogin.Id && nm.NumNoti > 0).SumAsync(mn => mn.NumNoti); ViewBag.NewMessege = numberMessegeNew; } #endregion #region Thong tin menu ben trai if (User.Identity.IsAuthenticated) // thong tin user dang nhap { ApplicationUser currentUser = await UserManager.FindByIdAsync(User.Identity.GetUserId()); ViewBag.AvataEmage = string.IsNullOrEmpty(currentUser.UserExtentLogin.AvataImage) == true ? AppHelper.ImageURLAvataDefault : AppHelper.ImageURLAvata + currentUser.UserExtentLogin.AvataImage; ViewBag.CureentUserId = currentUser.UserExtentLogin.Id; ViewBag.UserName = currentUser.UserName; ViewBag.CharacterLimit = currentUser.UserExtentLogin.CharacterLimit; } else { ViewBag.AvataEmage = AppHelper.ImageURLAvataDefault; } // End thong tin menu ben trai #endregion #region thong tin co phieu var company = new StockCode(); company = await db.StockCodes.FirstOrDefaultAsync(m => m.Code.ToUpper() == symbolName.ToUpper()); ViewBag.StockCode = company == null?StatusSymbol.NF.ToString() : symbolName.ToUpper(); ViewBag.StockName = company == null?StatusSymbol.NF.ToString() : company.ShortName; ViewBag.LongName = company == null?StatusSymbol.NF.ToString() : company.LongName; ViewBag.MarketName = company == null?StatusSymbol.NF.ToString() : company.IndexName; ViewBag.ImgEx = ".png"; #endregion #region gia co phieu StockRealTime stockprice = new StockRealTime(); stockprice = _stockRealtime.GetStocksByTicker(symbolName).Result; if (stockprice == null) { stockprice = new StockRealTime(); stockprice.CompanyID = symbolName; } var listIndex = new List <string>(); listIndex.Add("VNINDEX"); listIndex.Add("HNXINDEX"); ViewBag.ListIndex = _stockRealtime.GetAllStocksList(listIndex).Result; #endregion #region Set Info of hot stock ViewBag.ListStockHot = AppHelper.GetListHotStock(); #endregion return(View(stockprice)); }
public async Task <ViewResult> Index(string symbolName) { using (db = new testEntities()) { var company = new StockCode(); ApplicationUser currentUser = await UserManager.FindByIdAsync(User.Identity.GetUserId()); #region danh muc co phieu dang follow #endregion #region Thong tin menu ben trai // Thong tin menu ben trai var post = await db.Posts.CountAsync(p => p.PostedBy == currentUser.UserExtentLogin.Id); var follow = await db.FollowUsers.CountAsync(f => f.UserId == currentUser.UserExtentLogin.Id); var follower = await db.FollowUsers.CountAsync(f => f.UserIdFollowed == currentUser.UserExtentLogin.Id); var countStockFollowr = await db.FollowStocks.CountAsync(f => f.UserId == currentUser.UserExtentLogin.Id && f.StockFollowed == symbolName); if (countStockFollowr == 1) { ViewBag.CheckStockExist = "Y"; } else { ViewBag.CheckStockExist = "N"; } ViewBag.TotalPost = post; ViewBag.Follow = follow; ViewBag.Follower = follower; ViewBag.CoverImage = string.IsNullOrEmpty(currentUser.UserExtentLogin.AvataCover) == true ? ImageURLCoverDefault : ImageURLCover + currentUser.UserExtentLogin.AvataCover; ViewBag.AvataEmage = string.IsNullOrEmpty(currentUser.UserExtentLogin.AvataImage) == true ? ImageURLAvataDefault : ImageURLAvata + currentUser.UserExtentLogin.AvataImage; // End thong tin menu ben trai #endregion #region thong tin co phieu company = await db.StockCodes.FirstOrDefaultAsync(m => m.Code.ToUpper() == symbolName.ToUpper()); ViewBag.StockCode = company == null?StatusSymbol.NF.ToString() : symbolName.ToUpper(); ViewBag.StockName = company == null?StatusSymbol.NF.ToString() : company.ShortName; ViewBag.LongName = company == null?StatusSymbol.NF.ToString() : company.LongName; ViewBag.MarketName = company == null?StatusSymbol.NF.ToString() : company.IndexName; ViewBag.CureentUserId = currentUser.UserExtentLogin.Id; ViewBag.UserName = currentUser.UserName; ViewBag.AvataImageUrl = string.IsNullOrEmpty(currentUser.UserExtentLogin.AvataImage) == true ? ImageURLAvataDefault : ImageURLAvata + currentUser.UserExtentLogin.AvataImage + "?width=46&height=46&mode=crop"; #endregion #region danh muc co phieu vua moi xem duoc luu troong cookie /* * //var cookie = new HttpCookie("cookiename"); * * if (Request.Cookies["HotStockCookie" + currentUser.Id] == null) * { * Response.Cookies.Clear(); * Response.Cookies["HotStockCookie" + currentUser.Id].Value = ""; * Response.Cookies["HotStockCookie" + currentUser.Id].Expires = DateTime.Now.AddDays(1); * } * else * { * Response.Cookies["HotStockCookie" + currentUser.Id].Value = Request.Cookies["HotStockCookie" + currentUser.Id].Value.Replace("|" + symbolName, "") + "|" + symbolName; * } * * string[] listHotStock = Response.Cookies["HotStockCookie" + currentUser.Id].Value.Split('|'); * * if (listHotStock.Length > 11) // neu xem hon 10 co phieu thi chi hien thi 10 co phieu dau tien * { * Response.Cookies["HotStockCookie" + currentUser.Id].Value = Request.Cookies["HotStockCookie" + currentUser.Id].Value.Remove(0, Request.Cookies["HotStockCookie" + currentUser.Id].Value.IndexOf("|", 1)); // hien thi 10 co phieu đau tien * listHotStock = Request.Cookies["HotStockCookie" + currentUser.Id].Value.Split('|'); * } * List<string> listHotStockToArray = new List<string>(); * foreach (var item in listHotStock) * { * listHotStockToArray.Add(item); * } * //var hotStockPrice = _stockRealtime.GetAllStocksTestList(listHotStockToArray).Result; * * ViewBag.HotStockPriceList = listHotStockToArray;//hotStockPrice.Count() == 0 ? new List<StockRealTime>() : hotStockPrice; */ #endregion #region danh muc dau tu var followstocks = await db.FollowStocks.Where(f => f.UserId == currentUser.UserExtentLogin.Id).ToListAsync(); var listfollowstocksString = (from sf in followstocks select sf.StockFollowed).ToList(); var DMDTShortName = (from fs in db.FollowStocks.ToList() join s in db.StockCodes.ToList() on fs.StockFollowed equals s.Code where listfollowstocksString.Contains(fs.StockFollowed) select new StockDetail { Stock = fs.StockFollowed, ShortName = s.ShortName }).ToList(); ViewBag.HotStockDMDT = DMDTShortName;//_stockRealtime.GetAllStocksTestList(listfollowstocksString).Result; #endregion //return View(_stockRealtime.GetAllStocksTestList((List<string>)Session["listStock"]).Result); return(View(currentUser)); } }