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); }
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); }
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); }
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); }