예제 #1
0
        private static long GetRateQuotesPerformanceMilliseconds(IRateProviderService rateProviderService)
        {
            var everyMinuteInAWeek = Enumerable
                                     .Range(0, 60 * 24 * 7)
                                     .Select(x => TimeSpan.FromMinutes(x))
                                     .ToList();
            var everyMinuteInAWeekAnHourLater = everyMinuteInAWeek.Skip(60);

            var sunday = new DateTimeOffset(2017, 8, 13, 0, 0, 0, TimeSpan.Zero);
            var oneHourTimeIntervals = everyMinuteInAWeek
                                       .Zip(everyMinuteInAWeekAnHourLater, (start, end) => new { From = sunday + start, To = sunday + end })
                                       .ToList();

            var stopwatch = Stopwatch.StartNew();

            for (int i = 0; i < 250; i++)
            {
                foreach (var timeInterval in oneHourTimeIntervals)
                {
                    rateProviderService.GetPrice(timeInterval.From, timeInterval.To);
                }
            }
            stopwatch.Stop();

            return(stopwatch.ElapsedMilliseconds);
        }
예제 #2
0
        private static void SetUpRates(IRateProviderService rateProviderService)
        {
            var rates = Enumerable
                        .Range(0, 24)
                        .Select(x => new { From = x, To = x + 1 })
                        .Select(x => new RateDefinition
            {
                Days  = "sun,mon,tues,wed,thurs,fri,sat",
                Times = $"{x.From:D2}00-{x.To:D2}00",
                Price = 40
            })
                        .ToList();

            rateProviderService.UseRates(new RateDefinitions
            {
                Rates = rates
            });
        }
 public RateProviderServiceTestsBase(IRateProviderService rateProviderService)
 {
     _rateProviderService = rateProviderService;
 }
예제 #4
0
 public RateController(IRateProviderService rateProviderService)
 {
     _rateProviderService = rateProviderService;
 }