Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }