public static async Task Run([TimerTrigger("0 30 */6 * * *")] TimerInfo myTimer, ILogger log)
        {
            log.LogInformation($"[BEGIN] ResultsImporter: {DateTime.Now}");
            var serviceProvider   = new ServiceCollection().AddHttpClient().BuildServiceProvider();
            var httpClientFactory = serviceProvider.GetService <IHttpClientFactory>();

            var settings = AppSettings.Configure();

            using (var sqlConnection = new SqlConnection(settings.Database.ConnectionString))
            {
                sqlConnection.Open();
                var databaseConnection = new DatabaseConnection(sqlConnection);

                IProvider <Competition> competitionDb = new CompetitionDatabase(databaseConnection);
                IDatabase <Team>        teamDb        = new TeamDatabase(databaseConnection);
                IGameweekDatabase       gameweekDb    = new GameweekDatabase(databaseConnection);

                var fixtureMapper   = new Mappers.ApiFootball.FixtureMapper(competitionDb, teamDb, gameweekDb);
                var fixtureProvider = new ApiFootballFixtureProvider(httpClientFactory, settings.Api.AuthToken, fixtureMapper);

                var fixtureDb = new FixtureDatabase(databaseConnection);
                var today     = DateTime.Today;
                var fixtures  = await FixtureCollection.RetrieveFrom(fixtureProvider, today.AddDays(-2), today);

                log.LogInformation($"Retrieved {fixtures.Count()} fixtures");
                fixtures.SaveTo(fixtureDb);
            }
            log.LogInformation($"[COMPLETE] ResultsImporter: {DateTime.Now}");
        }
        public void SaveExecutesCorrectScript()
        {
            var sut = new FixtureDatabase(this);

            sut.Save(_autoFixture.Create <Fixture>());
            Assert.Equal(expectedSql, _sqlReceived);
        }
        public void SaveToConnection()
        {
            var sut = new FixtureDatabase(this);

            sut.Save(_autoFixture.Create <Fixture>());
            Assert.True(_executeCalled);
        }
        public void SaveExecutesWithCorrectObject()
        {
            var sut     = new FixtureDatabase(this);
            var fixture = _autoFixture.Create <Fixture>();

            sut.Save(fixture);
            Assert.Same(fixture, _fixtureReceived);
        }
        private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
            fixturesDb = await LoadFixtureDatabase();
            await LoadConsoleSurfaceConfiguration();
            await LoadSurfaceToFixtureMapping();


            ITimerDmxGenerator g;

            //g=new SinusDmxGenerator(20,230);
            //g.SetBpm(60);
            //g.IsActive = true;
            //TimeDmxClockEngine.Current.AddGenerator("scanPan", g);

            //g = new CosinusDmxGenerator(20, 230);
            //g.SetBpm(60);
            //g.IsActive = true;
            //TimeDmxClockEngine.Current.AddGenerator("scanTilt", g);
            g = new RandomPerBeatGenerator(97, 98, 20, 230, 20, 230);
            g.SetBpm(60);
            g.IsActive = true;
            TimeDmxClockEngine.Current.AddGenerator("scanRandom", g);
            TimeDmxClockEngine.Current.SetParameterValue("scanRandom", "lockY", "1");
            TimeDmxClockEngine.Current.SetParameterValue("scanRandom", "lockX", "1");
            //TimeDmxClockEngine.Current.SetParameterValue("scanRandom", "lockGOBO", "1");


            g = new RandomPerBeatGenerator(110, 111, 20, 230, 20, 230);
            g.SetBpm(60);
            g.IsActive = true;
            TimeDmxClockEngine.Current.AddGenerator("scanLyre1", g);
            TimeDmxClockEngine.Current.SetParameterValue("scanLyre1", "lockY", "1");
            TimeDmxClockEngine.Current.SetParameterValue("scanLyre1", "lockX", "1");

            g = new RandomPerBeatGenerator(120, 121, 20, 230, 20, 230);
            g.SetBpm(60);
            g.IsActive = true;
            TimeDmxClockEngine.Current.AddGenerator("scanLyre2", g);
            TimeDmxClockEngine.Current.SetParameterValue("scanLyre2", "lockY", "1");
            TimeDmxClockEngine.Current.SetParameterValue("scanLyre2", "lockX", "1");

            var player1 = new SequencePlayer(@"UwpTestSequence\sequence001.json");

            TimeDmxClockEngine.Current.AddGenerator("seq001", player1);


            var player2 = new SequencePlayer(@"UwpTestSequence\sequence002.json");

            TimeDmxClockEngine.Current.AddGenerator("seq002", player2);

            var player3 = new SequencePlayer(@"UwpTestSequence\sequence003.json");

            TimeDmxClockEngine.Current.AddGenerator("seq003", player3);

            var player4 = new SequencePlayer(@"UwpTestSequence\sequence004.json");

            TimeDmxClockEngine.Current.AddGenerator("seq004", player4);


            TimeDmxClockEngine.Current.SetBpm(60);
            TimeDmxClockEngine.Current.Start();
        }