예제 #1
0
        public void CacheSimulator()
        {
            //decimal? lastprice = 0;
            //decimal? prevprice = 0;
            int i         = 0;
            var allStocks = new List <StockSymbol>();

            string[] stocksymbols = new string[] { "HLF", "IPG", "AMD", "DNKN", "POT", "TUES", "JBLU", "ACN", "MSFT", "BAC", "BCS", "AIG", "CMG", "FIT" };
            Random   random       = new Random(DateTime.Now.Millisecond);

            foreach (string s in stocksymbols)
            {
                i++;
                decimal lastprice = 0;
                decimal prevprice = 0;
                lastprice = Convert.ToDecimal(random.Next(140, 400)) * .3213m;
                prevprice = Convert.ToDecimal(lastprice) * 1.532m;
                StockSymbol ss = new StockSymbol()
                {
                    Id = i, Symbol = s, LastPrice = lastprice, PreviousPrice = prevprice
                };
                allStocks.Add(ss);
            }

            //var serializer = new NewtonsoftSerializer();
            //var cacheClient = new StackExchangeRedisCacheClient(serializer);
            string key = "StocksDecisionAllStocks";

            stackCache.Remove(key);
            stackCache.Add(key, allStocks, DateTimeOffset.Now.AddHours(40));
        }
예제 #2
0
        public StockSymbol GetDataPerSymbol(string symbol)
        {
            string rawdata = GetRawData(symbol);

            StockSymbol stockSymbol = new StockSymbol();

            string cleandata = rawdata.Replace("//", "");

            cleandata = cleandata.Replace("[", "");
            cleandata = cleandata.Replace("]", "");
            var    details        = JObject.Parse(cleandata);
            var    metadata       = JObject.Parse(details["Meta Data"].ToString());
            var    lastRefresh    = DateTime.Parse(metadata["3. Last Refreshed"].ToString()).ToString("yyyy-MM-dd");
            var    stocks         = JObject.Parse(details["Time Series (Daily)"].ToString());
            var    stock          = JObject.Parse(stocks[lastRefresh].ToString());
            string strPreviousDay = GetPreviousWorkingDay(DateTime.Parse(lastRefresh)).ToString("yyyy-MM-dd");
            var    prevStock      = JObject.Parse(stocks[strPreviousDay].ToString());

            stockSymbol.Symbol        = symbol;
            stockSymbol.LastPrice     = decimal.Parse(stock["5. adjusted close"].ToString());
            stockSymbol.PreviousPrice = decimal.Parse(prevStock["5. adjusted close"].ToString());

            return(stockSymbol);
        }