Exemplo n.º 1
0
        /// <summary>
        /// Get the real-time exchange chart by stock
        /// </summary>
        /// <param name="stock"></param>
        /// <returns></returns>
        public async Task <StockChartModel> QueryRealTimeTradeChartAsync(StockInfoModel stock)
        {
            string url = string.Format(QUERY_REAL_TIME_TRADE_CHART_URI, stock.ExchangeTpeyKey, stock.Id + ".tw", GetJavaScriptTimeTick());

            try
            {
                string responseJson = await Http.GetAsync(url);

                var jsonModel = JsonConverter.DeserializeFrom <ExchangeChartData>(responseJson);
                if (jsonModel.Result == SUCCESS)
                {
                    return(jsonModel.ConvertToModel());
                }
                else
                {
                    throw new Exception("Stock Query fail, error result : " + jsonModel.Result);
                }
            }
            catch (WebException e)
            {
                // TODO test
                // retry to get session and try to query stock data
                throw new QueryDataTimeOutException(e.InnerException.Message);
            }
        }
Exemplo n.º 2
0
        private void BindStockInfo()
        {
            var source = _stocks.Select(x => new StockInfoModel
            {
                Id            = x.Id,
                Code          = x.Code,
                FullCode      = x.FullCode,
                Name          = x.Name,
                DisplayMember = x.FullCode + " - " + x.Name,
            }
                                        ).ToList();

            var all = new StockInfoModel
            {
                Id            = 0,
                FullCode      = string.Empty,
                Name          = "全部",
                DisplayMember = " 全部",
            };

            source.Add(all);

            source = source.OrderBy(x => x.FullCode).ToList();

            this.luStock.Initialize(source, "FullCode", "DisplayMember", enableSearch: true, searchColumnIndex: 0);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 绑定查询信息
        /// </summary>
        private void BindSearchInfo()
        {
            //股票
            var stocks = _stockService.GetAllStocks(showDeleted: true)
                         .Select(x => new StockInfoModel
            {
                Id            = x.Id,
                Code          = x.Code,
                FullCode      = x.FullCode,
                Name          = x.Name,
                DisplayMember = x.FullCode + " - " + x.Name,
            }
                                 ).ToList();

            var allStockModel = new StockInfoModel
            {
                Id            = 0,
                FullCode      = "000000",
                Name          = "全部",
                DisplayMember = "000000 - 全部",
            };

            stocks.Add(allStockModel);
            stocks = stocks.OrderBy(x => x.FullCode).ToList();
            luStock.Initialize(stocks, "FullCode", "DisplayMember", enableSearch: true);

            //账户
            var accounts = _accountService.GetAccountDetails(showDisabled: true).ToList();

            var allAccountModel = new AccountEntity
            {
                Id                  = 0,
                Name                = "  全部  ",
                AttributeName       = "  全部  ",
                SecurityCompanyName = "  全部  ",
                DisplayMember       = "  全部  ",
            };

            accounts.Add(allAccountModel);
            accounts = accounts.OrderBy(x => x.Name).ThenBy(x => x.SecurityCompanyName).ToList();
            luAccount.Initialize(accounts, "Id", "DisplayMember", enableSearch: true);

            //导入人
            var importors = _userService.GetAllAdmins(showDeleted: true);

            var allUserModel = new UserInfo
            {
                Code = string.Empty,
                Name = "全部",
            };

            importors.Add(allUserModel);

            importors = importors.OrderBy(x => x.Code).ToList();

            luImport.Initialize(importors, "Code", "Name", showHeader: true, enableSearch: true);

            SetDefaultSearchInfo();
        }
Exemplo n.º 4
0
 public void QueryExcehangeChartStockAsyncTest()
 {
     TwseStockClient client    = new TwseStockClient();
     var             stockInfo = new StockInfoModel {
         Id = "2345", MarketType = "上市", Name = "智邦"
     };
     var result = client.QueryRealTimeTradeChartAsync(stockInfo).GetAwaiter().GetResult();
 }
Exemplo n.º 5
0
        private void BtnStock_Click(object sender, RoutedEventArgs e)
        {
            Product        product1  = new Product("Computer", "csda2123asda", 1000, 20);
            Product        product2  = new Product("Screen", "mgdaA23jhh234j234", 500, 20);
            Product        product3  = new Product("Mouse", "m123nn123n12676546", 20, 20);
            Product        product4  = new Product("Keyboard", "342167sd6786sda", 40, 20);
            StockInfoModel stockInfo = new StockInfoModel();

            stockInfo.products.Add(product1);
            stockInfo.products.Add(product2);
            stockInfo.products.Add(product3);
            stockInfo.products.Add(product4);
            new StockController(new StockInfoView(stockInfo)).ShowView();
        }
Exemplo n.º 6
0
        /// <summary>
        /// Get the real-time exchange chart by stock
        /// </summary>
        /// <param name="stock"></param>
        /// <returns></returns>
        public async Task<StockChartModel> QueryRealTimeTradeChartAsync(StockInfoModel stock)
        {
            string url = string.Format(QUERY_REAL_TIME_TRADE_CHART_URI, stock.ExchangeTpeyKey, stock.Id + ".tw", GetJavaScriptTimeTick());

            try
            {
                string responseJson = await Http.GetAsync(url);
                var jsonModel = JsonConverter.DeserializeFrom<ExchangeChartData>(responseJson);
                if (jsonModel.Result == SUCCESS)
                {
                    return jsonModel.ConvertToModel();
                }
                else
                    throw new Exception("Stock Query fail, error result : " + jsonModel.Result);
            }
            catch(WebException e)
            {
                // TODO test
                // retry to get session and try to query stock data
                throw new QueryDataTimeOutException(e.InnerException.Message);
            }
        }
Exemplo n.º 7
0
        private List <StockInfoModel> RetrieveStockInfoFrom(string html)
        {
            const char            stockSplitWord = ' ';
            int                   count          = 0;
            List <StockInfoModel> stockList      = new List <StockInfoModel>(200);

            HtmlDocument doc = new HtmlDocument();

            doc.LoadHtml(html);
            var stockHtmlNodes = doc.DocumentNode.Descendants("tr");

            foreach (var item in stockHtmlNodes)
            {
                // the first two record is not stock data
                if (count++ < 2)
                {
                    continue;
                }
                var stockData = item.ChildNodes[0].InnerText.Trim().Split(stockSplitWord);
                if (stockData.Length >= 2)
                {
                    StockInfoModel model = new StockInfoModel
                    {
                        Id         = stockData[0].Trim(),
                        Name       = stockData[stockData.Length - 1].Trim(),
                        MarketType = item.ChildNodes[3].InnerText.Trim(),
                        Category   = item.ChildNodes[4].InnerText.Trim()
                    };
                    stockList.Add(model);
                }
                else
                {
                    count = 100;
                }
            }
            return(stockList);
        }
 public StockInfoView(StockInfoModel stockInfo)
 {
     InitializeComponent();
     stockInfoModel             = stockInfo;
     dtgrdStockInfo.ItemsSource = stockInfoModel.products;
 }
Exemplo n.º 9
0
        private void tabPane1_SelectedPageChanged(object sender, DevExpress.XtraBars.Navigation.SelectedPageChangedEventArgs e)
        {
            try
            {
                if (e.Page.Caption == tpSearch.Caption)
                {
                    var connString = System.Configuration.ConfigurationManager.ConnectionStrings["CTMContext"].ToString();

                    //股票信息
                    var stockCommandText = $@"SELECT DISTINCT StockCode, StockName FROM [dbo].[v_PSADetail] ";

                    var dsStock = SqlHelper.ExecuteDataset(connString, CommandType.Text, stockCommandText);

                    if (dsStock == null || dsStock.Tables.Count == 0)
                    {
                        return;
                    }

                    var stocks = dsStock.Tables[0].AsEnumerable().Select(x => new StockInfoModel
                    {
                        FullCode      = x.Field <string>("StockCode").Trim(),
                        Name          = x.Field <string>("StockName").Trim(),
                        DisplayMember = x.Field <string>("StockCode").Trim() + " - " + x.Field <string>("StockName").Trim(),
                    }
                                                                         ).ToList();

                    var allStock = new StockInfoModel()
                    {
                        FullCode      = string.Empty,
                        Name          = "全部",
                        DisplayMember = "全部",
                    };
                    stocks.Add(allStock);
                    stocks = stocks.OrderBy(x => x.FullCode).ToList();

                    this.luStock.Initialize(stocks, "FullCode", "DisplayMember", enableSearch: true);

                    //投资人员
                    var investorCommandText = $@"SELECT DISTINCT InvestorCode , InvestorName FROM [dbo].[v_PSADetail] ";

                    var dsInvestor = SqlHelper.ExecuteDataset(connString, CommandType.Text, investorCommandText);

                    if (dsInvestor == null || dsInvestor.Tables.Count == 0)
                    {
                        return;
                    }

                    var investors = dsInvestor.Tables[0].AsEnumerable().Select(x => new UserInfo
                    {
                        Code = x.Field <string>("InvestorCode").Trim(),
                        Name = x.Field <string>("InvestorName").Trim(),
                    }
                                                                               ).ToList();

                    var allInvestor = new UserInfo
                    {
                        Code = string.Empty,
                        Name = "全部",
                    };
                    investors.Add(allInvestor);
                    investors = investors.OrderBy(x => x.Code).ToList();

                    this.luInvestor.Initialize(investors, "Code", "Name", enableSearch: true);
                }
            }
            catch (Exception ex)
            {
                DXMessage.ShowError(ex.Message);
            }
        }
Exemplo n.º 10
0
        private List<StockInfoModel> RetrieveStockInfoFrom(string html)
        {
            const char stockSplitWord = ' ';
            int count = 0;
            List<StockInfoModel> stockList = new List<StockInfoModel>(200);

            HtmlDocument doc = new HtmlDocument();
            doc.LoadHtml(html);
            var stockHtmlNodes = doc.DocumentNode.Descendants("tr");

            foreach (var item in stockHtmlNodes)
            {
                // the first two record is not stock data
                if (count++ < 2)
                    continue;
                var stockData = item.ChildNodes[0].InnerText.Trim().Split(stockSplitWord);
                if (stockData.Length >= 2)
                {
                    StockInfoModel model = new StockInfoModel
                    {
                        Id = stockData[0].Trim(),
                        Name = stockData[stockData.Length - 1].Trim(),
                        MarketType = item.ChildNodes[3].InnerText.Trim(),
                        Category = item.ChildNodes[4].InnerText.Trim()
                    };
                    stockList.Add(model);
                }
                else
                    count = 100;
            }
            return stockList;
        }
Exemplo n.º 11
0
        /// <summary>
        /// 绑定查询信息
        /// </summary>
        private void BindSearchInfo()
        {
            //股票
            var stocks = _stockService.GetAllStocks(showDeleted: true)
                         .Select(x => new StockInfoModel
            {
                Id            = x.Id,
                Code          = x.Code,
                FullCode      = x.FullCode,
                Name          = x.Name,
                DisplayMember = x.FullCode + " - " + x.Name,
            }
                                 ).ToList();

            var allStockModel = new StockInfoModel
            {
                Id            = 0,
                FullCode      = "000000",
                Name          = "全部",
                DisplayMember = "000000 - 全部",
            };

            stocks.Add(allStockModel);
            stocks = stocks.OrderBy(x => x.FullCode).ToList();
            luStock.Initialize(stocks, "FullCode", "DisplayMember", enableSearch: true);

            //账户
            BindAccount();

            //数据类型
            var dataTypes = new List <ComboBoxItemModel>();

            var entrustModel = new ComboBoxItemModel
            {
                Text  = "当日委托",
                Value = "1",
            };

            dataTypes.Add(entrustModel);

            var dailyModel = new ComboBoxItemModel
            {
                Text  = "当日成交",
                Value = "3",
            };

            dataTypes.Add(dailyModel);

            var deliveryModel = new ComboBoxItemModel
            {
                Text  = "交割单",
                Value = "2",
            };

            dataTypes.Add(deliveryModel);

            var virtualModel = new ComboBoxItemModel
            {
                Text  = "虚拟交易",
                Value = "77",
            };

            dataTypes.Add(virtualModel);

            var stockTransferModel = new ComboBoxItemModel
            {
                Text  = "股票转移",
                Value = "88",
            };

            dataTypes.Add(stockTransferModel);

            var oldSystemModel = new ComboBoxItemModel
            {
                Text  = "旧系统",
                Value = "99",
            };

            dataTypes.Add(oldSystemModel);

            this.cbDataType.Initialize(dataTypes, displayAdditionalItem: true);

            //交易类别
            var tradeTypes = _dictionaryService.GetDictionaryInfoByTypeId((int)EnumLibrary.DictionaryType.TradeType)
                             .Select(x => new ComboBoxItemModel
            {
                Text  = x.Name,
                Value = x.Code.ToString(),
            }).ToList();

            cbTradeType.Initialize(tradeTypes, displayAdditionalItem: true);

            var allUserModel = new UserInfo
            {
                Code = string.Empty,
                Name = "全部",
            };

            var dealers = _userService.GetAllOperators(showDeleted: true);

            dealers.Add(allUserModel);
            dealers = dealers.OrderBy(x => x.Code).ToList();

            //受益人
            luBeneficiary.Initialize(dealers, "Code", "Name", showHeader: true, enableSearch: true);

            var admins    = _userService.GetAllAdmins(showDeleted: true);
            var importors = new List <UserInfo>();

            importors.AddRange(dealers);
            importors.AddRange(admins);

            importors = importors.Distinct().OrderBy(x => x.Code).ToList();

            //导入人
            luImport.Initialize(importors, "Code", "Name", showHeader: true, enableSearch: true);
        }