Пример #1
0
        async Task <IEnumerable <PowerTrade> > GetTrades(DateTime date)
        {
            int retry = 0;
            IEnumerable <PowerTrade> listTrade = new List <PowerTrade>();

ACCESS_POWER:
            try
            {
                listTrade = await _powerService.GetTradesAsync(date);
            }
            catch (PowerServiceException ex)
            {
                _log.Error("Error retrieving the power trades", ex);
                ++retry;
                if (retry <= ConfigurationReader.MaxRetry)
                {
                    goto ACCESS_POWER;
                }
                throw new Exception("Too many PowerService exceptions, max retry reached.");
            }
            catch (Exception exc)
            {
                _log.Error("Unexpected error in getting trades", exc);
                throw;
            }

            return(listTrade);
        }
Пример #2
0
        public async Task <IEnumerable <CustomPowerTrade> > GetTradesAsync(DateTime asOfDate)
        {
            log.Info("Step 1:Calling PowerService dll's GetTrades");
            var powerTrades = await _powerService.GetTradesAsync(asOfDate);

            var customPowerTrades = powerTrades.Select(s => new CustomPowerTrade {
                Periods = s.Periods, Date = s.Date
            });

            log.Info("Step 1:Call to PowerService dll's GetTrades finished");

            return(customPowerTrades);
        }
Пример #3
0
        public void GetTradesAsync_method_returns_data_in_under_a_minute()
        {
            var powerService = new PowerService();
            var maxRunTime   = new TimeSpan(0, 0, 60);
            var stopWatch    = new System.Diagnostics.Stopwatch();

            stopWatch.Start();
            var currentTrades = (powerService.GetTradesAsync(_tradesDate)).Result;

            stopWatch.Stop();
            var runTime = stopWatch.Elapsed;

            Assert.GreaterOrEqual(maxRunTime, runTime);
        }
Пример #4
0
        public void GetTradesAsync_method__returns_same_trades_for_same_query_datetime()
        {
            var powerService      = new PowerService();
            var currentTradesTask = powerService.GetTradesAsync(_tradesDate);
            var currentTrades     = currentTradesTask.Result;
            var matchTrades       = GetTestTrades();
            var matchTradeIndex   = 0;
            var currentTradecount = 0;

            //Assume ordering is always the same then trades queried for same date should be the exact same and in the same order
            foreach (PowerTrade currentTrade in currentTrades)
            {
                var currentTradeText = JsonConvert.SerializeObject(currentTrade);
                var matchTradeText   = JsonConvert.SerializeObject(matchTrades[matchTradeIndex]);
                Assert.AreEqual(currentTradeText, matchTradeText);
                matchTradeIndex++;
                currentTradecount++;
            }
            //confirm count is the same in case of zero trades returned
            Assert.AreEqual(currentTradecount, matchTrades.Count);
        }