Beispiel #1
0
        private StorageStockSectionModel GetStorageStockSectionModel(List <Tuple <string, string, StockBase> > dic, string code)
        {
            StorageStockSectionModel model = new StorageStockSectionModel();
            var finds = dic.Where(x => x.Item3.Code.Equals(code));

            foreach (var item in finds)
            {
                StorageSection section = new StorageSection();
                section.Title = item.Item1;
                section.Url   = item.Item2;
                model.Sections.Add(section);
            }
            return(model);
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="proxy"></param>
        /// <param name="stocks"></param>
        /// <param name="sectionModels"></param>
        /// <returns></returns>
        private List <StorageStockSectionModel> GetStorageStockSectionModels(WebProxy proxy, List <string> stocks, List <SectionModel> sectionModels)
        {
            var headers = new WebHeaderCollection();

            headers.Add(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");

            var pr       = "http://nufm.dfcfw.com/EM_Finance2014NumericApplication/JS.aspx?";
            var urlParam = "cb=jQuery112406821645128125025_1537783921470&type=CT&token=4f1862fc3b5e77c150a2b985b12db0fd&sty=FCOIATC&js=(%7Bdata%3A%5B(x)%5D%2CrecordsFiltered%3A(tot)%7D)&cmd=C.{0}&st=(ChangePercent)&sr=-1&p=1&ps=2000&_=1537783921481";

            var regex = new Regex("[{](.*?)[}]{1,}");
            List <Tuple <string, string, StockBase> > dic = new List <Tuple <string, string, StockBase> >();

            int    i      = 0;
            string preUrl = "http://quote.eastmoney.com";

            foreach (var item in sectionModels)
            {
                string newUrl         = pr + string.Format(urlParam, item.Key.Replace("boards-", "").Trim());
                var    response       = HttpHelper.CreateGetHttpResponse(newUrl, 60000, new CustomerHeader(), headers, proxy);
                var    responseString = HttpHelper.GetResponseString(response);

                var match = regex.Match(responseString);
                var queryStockDetailResponseModel = JsonHelper.DeserializeJsonToObject <QueryStockDetailResponseModel>(match.Value);
                var stockDetailModels             = DtoHelper.GetStockDetailModel(queryStockDetailResponseModel.Datas);
                stockDetailModels.ForEach(x =>
                {
                    dic.Add(new Tuple <string, string, StockBase>(item.Title, preUrl + item.Href, x));
                });
                Messenger.Default.Send(new StatusBarArgs(true, string.Format(ResourceHelper.FindKey("StatusBar_Message_SyncingStockTopicLinkDataProgress"), i, sectionModels.Count)), StatusBarToken.UpdateStatus);
                Console.WriteLine(i);
                i++;
                Thread.Sleep(200);
            }

            List <StorageStockSectionModel> models = new List <StorageStockSectionModel>();

            stocks.ToList().ForEach(x =>
            {
                StorageStockSectionModel temp = GetStorageStockSectionModel(dic, x);
                temp.StockCode = x;
                temp.StockName = CommonStockDataManager.Instance.GetStockDetailModel(x).Name;
                models.Add(temp);
            });
            return(models);
        }