Exemplo n.º 1
0
        public BusinessResult <List <Stock> > CheckStockChanges()
        {
            try
            {
                // get symbols
                var symbols = this._stockSeedDataService.GetStockSymbols();
                var stocks  = new List <Stock>();

                if (symbols != null && symbols.Count > 0)
                {
                    // call market stack client to get latest values for stocks
                    var marketStackStocks = Task.Run(() => this._marketStackHttpClient.GetIntradayStocks(symbols.First()));

                    // get saved stocks from DB
                    var savedStocks = this._stockDataService.GetStocks();

                    // if saved stocks exist, compare and perform update of records
                    if (savedStocks != null && savedStocks.Count > 0)
                    {
                        // compare retrieved stocks

                        // update saved stocks

                        // return any stocks that have changed significantly
                    }

                    var marketStock = marketStackStocks.Result.Data.First();

                    // otherwise create new stock records using data from market stack
                    return(BusinessResult <List <Stock> > .CreateSuccessResult(stocks));
                }

                return(BusinessResult <List <Stock> > .CreateSuccessResult(stocks));
            }
            catch (Exception e)
            {
                return(BusinessResult <List <Stock> > .CreateFailure(e));
            }
        }