public async void CanCreatePurchase() { var container = CreateContainer(); var bus = container.GetInstance <IBus>(); var time = new DateTime(1970, 1, 1, 12, 0, 10, DateTimeKind.Utc).ToInstant(); await await bus.CommandAsync(new RetroactiveCommand <RegisterHashflare>(new RegisterHashflare("*****@*****.**"), time)); await await bus.CommandAsync(new RetroactiveCommand <CreateContract>(new CreateContract("0", "SHA-256", 100, 1000), time)); await bus.Equal(new HashflareStatsQuery(), s => s.BitcoinHashRate, 100); var historicalQuery = new HistoricalQuery <HashflareStatsQuery, HashflareStats>(new HashflareStatsQuery(), time + Duration.FromMilliseconds(100)); var result = await bus.QueryAsync(historicalQuery); Assert.Equal(100, result.BitcoinHashRate); }
public async void CanGetNumberOfCoins() { var container = CreateContainer(); var bus = container.GetInstance <IBus>(); var timeline = container.GetInstance <ITimeline>(); await await bus.CommandAsync(new CreateCoin("Bitcoin", "BTC")); var now = timeline.Now; Thread.Sleep(50); await await bus.CommandAsync(new CreateCoin("Ethereum", "ETH")); await bus.Equal(new StatsQuery(), s => s.NumberOfCoins, 2); var historicalQuery = new HistoricalQuery <StatsQuery, Stats>(new StatsQuery(), now); await bus.Equal(historicalQuery, s => s.NumberOfCoins, 1); var liveQuery = new HistoricalQuery <StatsQuery, Stats>(new StatsQuery(), DateTime.UtcNow.ToInstant()); await bus.Equal(liveQuery, s => s.NumberOfCoins, 2); }
public IActionResult IndexPost(HistoricalQuery query) { // Historical Data HistoricalServicePerformanceClient historicalClient = new HistoricalServicePerformanceClient(_config["Keys:NationalRail:Email"], _config["Keys:NationalRail:Password"]); List <ServiceDetailsResponse> details = new List <ServiceDetailsResponse>(); List <ServiceMetricResponse> historicalResponses = new List <ServiceMetricResponse>(); List <Service> services = new List <Service>(); DateTime date; DateTime.TryParseExact(query.Date, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date); DateTime endDate = date.AddDays(1); while (date < endDate && date < DateTime.Now) { string fromTime = date.TimeOfDay.ToString("hhmm"); string toTime = date.AddHours(1).TimeOfDay.ToString("hhmm"); if (toTime == "0000") { toTime = "2359"; } ServiceMetric metric = new ServiceMetric() { FromLocation = query.FromCrs, ToLocation = query.ToCrs, FromTime = fromTime, ToTime = toTime, FromDate = date.ToString("yyyy-MM-dd"), ToDate = date.ToString("yyyy-MM-dd") }; if (date.DayOfWeek == DayOfWeek.Saturday) { metric.Days = "SATURDAY"; } else if (date.DayOfWeek == DayOfWeek.Sunday) { metric.Days = "SUNDAY"; } else { metric.Days = "WEEKDAY"; } ServiceMetricResponse historicalResponse = historicalClient.GetServiceMetrics(metric).Result; historicalResponses.Add(historicalResponse); foreach (Service service in historicalResponse.Services) { services.Add(service); foreach (string rid in service.ServiceAttributesMetrics.RIDs) { ServiceDetailsResponse detail = historicalClient.GetServiceDetails(new ServiceDetailsRID(rid)).Result; details.Add(detail); } } date = date.AddHours(1); } TempData.Put("Stations", _stations); TempData.Put("Services", services); TempData.Put("Details", details); TempData.Put("DelayReasons", _delayReasons); return(View("~/Views/Projects/NationalRail/Index.cshtml", query)); }