示例#1
0
        public static void Build()
        {
            var tickers = GetTickers();

            using (MomentumData.MomentumEntities ctx = new MomentumData.MomentumEntities())
            {
                foreach (var entry in tickers)
                {
                    var last = ctx.StockDays.Where(p => p.Ticker == entry).OrderByDescending(p => p.DateStamp).FirstOrDefault();
                    if (last == null || last.DateStamp.Date < DateTime.Now.AddDays(-3).Date)
                    {
                        using (WebClient wc = new WebClient())
                        {
                            wc.Proxy = new System.Net.WebProxy("ntswhoproxy01:8080");
                            wc.Proxy.Credentials = new System.Net.NetworkCredential(@"woolworths\w7052442", "!Jan2013");
                            try
                            {
                                var data = wc.DownloadString(string.Format(Fin24Link, entry, 1));
                                var quote = JsonConvert.DeserializeObject<StockQuote>(data);
                                if (quote != null && quote.Result == 1)
                                {
                                    foreach (var item in quote.Object)
                                    {
                                        if (item.DateStamp.Date <= DateTime.Now.AddDays(-1).Date && ctx.StockDays.Count(p => p.Ticker == item.InstrumentIdentifier && p.DateStamp.Year == item.DateStamp.Year && p.DateStamp.Month == item.DateStamp.Month && p.DateStamp.Day == item.DateStamp.Day) == 0)
                                        {
                                            var newEntry = new MomentumData.StockDay();

                                            newEntry.Close = item.Close;
                                            newEntry.DateStamp = item.DateStamp;
                                            newEntry.High = item.High;
                                            newEntry.Low = item.Low;
                                            newEntry.Name = item.InstrumentName;
                                            newEntry.Open = item.Open;
                                            newEntry.Ticker = item.InstrumentIdentifier;
                                            newEntry.Volume = item.Volume;

                                            ctx.StockDays.AddObject(newEntry);
                                        }
                                    }
                                    ctx.SaveChanges();
                                }
                            }
                            catch { }
                        }
                    }
                }
            }
        }