예제 #1
0
        static async Task <int> GetFreq(GetFreqOptions opts)
        {
            var taskHelper = SystemTaskHelper.Instance;
            var downloader = new ElexonDownloader(taskHelper, opts.ElexonApiKey);
            var dir        = new SystemDirectory(taskHelper, opts.DataDirectory);
            var fetch      = new FetchFreq(taskHelper, downloader, dir, SystemTime.Instance);
            await fetch.Start(opts.GetImmediately);

            return(0);
        }
예제 #2
0
        static async Task <int> GetB1610(GetB1610Options opts)
        {
            var taskHelper = SystemTaskHelper.Instance;
            var downloader = new ElexonDownloader(taskHelper, opts.ElexonApiKey);
            var dir        = new SystemDirectory(taskHelper, opts.DataDirectory);
            var fetch      = new FetchB1610(taskHelper, downloader, dir, SystemTime.Instance, opts.ErrorLogFilename);
            await fetch.Start();

            return(0);
        }
        public GetFuelInstHhCur(Options opts)
        {
            var taskHelper = SystemTaskHelper.Instance;

            _scheduler = new Scheduler(SystemTime.Instance, taskHelper);
            var elexonDownloader = new ElexonDownloader(taskHelper, opts.ElexonApiKey);

            _fuelInstHhCur = new FuelInstHhCur(taskHelper, elexonDownloader);
            var dir = new SystemDirectory(taskHelper, opts.DataDirectory);

            _datastoreWriter = new FuelInstHhCur.Writer(taskHelper, dir);
            _getImmediately  = opts.GetImmediately;
        }
        public async Task Get()
        {
            var taskHelper       = SystemTaskHelper.Instance;
            var elexonApiKey     = TestHelper.ElexonApiKey();
            var elexonDownloader = new ElexonDownloader(taskHelper, elexonApiKey);
            var fuelInstHhCur    = new FuelInstHhCur(taskHelper, elexonDownloader);
            var data             = await fuelInstHhCur.GetAsync();

            // The following are expected to be correct just about all the time.
            Assert.InRange(data.Nuclear, Power.FromGigawatts(4), Power.FromGigawatts(10));
            Assert.InRange(data.Ccgt, Power.FromGigawatts(4), Power.FromGigawatts(40));
            Assert.InRange(data.Oil, Power.Zero, Power.FromMegawatts(500));
            Assert.InRange(data.Total, Power.FromGigawatts(18), Power.FromGigawatts(60));
            // Check update time is reasonable, from 24 hours ago until now.
            var now = SystemClock.Instance.GetCurrentInstant();

            Assert.InRange(data.Update, now - NodaTime.Duration.FromHours(24), now);
        }