Example #1
0
        public override void Initialize()
        {
            var connectionString       = ConfigurationReader.GetConnectionString(Environment.Production);
            var databaseName           = GetDatabaseName(connectionString);
            var task                   = Task.Run(async() => await ApplicationData.Current.LocalFolder.CreateFileAsync(databaseName, CreationCollisionOption.OpenIfExists)).Result;
            var databasePath           = Path.Combine(ApplicationData.Current.LocalFolder.Path, databaseName);
            var customConnectionString = connectionString.Replace(databaseName, databasePath, StringComparison.CurrentCulture);

            var connectionFactory    = new ConnectionFactory(Environment.Production, customConnectionString);
            var locationDao          = new LocationDao(connectionFactory);
            var skierDao             = new SkierDao(connectionFactory);
            var countryDao           = new CountryDao(connectionFactory);
            var raceDao              = new RaceDao(connectionFactory);
            var runDao               = new RunDao(connectionFactory);
            var sensorMeasurementDao = new SensorMeasurementDao(connectionFactory);

            var daoProvider        = new DaoProvider(countryDao, locationDao, raceDao, runDao, sensorMeasurementDao, skierDao);
            var messengerHub       = new MvxMessengerHub();
            var simulatorRaceClock = new SimulatorRaceClock();

            Mvx.IoCProvider.RegisterSingleton <IMvxMessenger>(messengerHub);
            Mvx.IoCProvider.RegisterSingleton <IDialogService>(new DialogService(messengerHub));
            Mvx.IoCProvider.RegisterSingleton <IRaceService>(new RaceService(daoProvider));
            Mvx.IoCProvider.RegisterSingleton <ILocationService>(new LocationService(daoProvider));
            Mvx.IoCProvider.RegisterSingleton <ISkierService>(new SkierService(daoProvider));
            Mvx.IoCProvider.RegisterSingleton <IRunService>(new RunService(daoProvider, simulatorRaceClock));
            Mvx.IoCProvider.RegisterSingleton <SimulatorRaceClock>(simulatorRaceClock);

            RegisterAppStart <ViewModels.NavigationRootViewModel>();
        }
Example #2
0
        public SimulatorControlViewModel(SimulatorRaceClock raceClock)
        {
            _raceClock             = raceClock;
            _dispatcherTimer       = new DispatcherTimer();
            _dispatcherTimer.Tick += dispatcherTimer_Tick;

            SensorNumber = 0;
            SensorCount  = 5;
            SendInterval = 10;
            InputEnabled = true;

            SendTimerImpulseCommand = new MvxCommand(SendTimerImpulse);
        }
        public void TestLeaderBoardUpdatedEventInvocation()
        {
            // Setup
            var raceClock      = new SimulatorRaceClock();
            var runService     = GetRunServiceForSensorImpulseHandlingTest(raceClock);
            var eventTriggered = false;

            runService.LeaderBoardUpdated += (race, number, runs) => eventTriggered = true;

            // Execute
            raceClock.SendImpulse(3);

            // Assert
            Assert.True(eventTriggered);
        }
        public void TestHandleSensorImpulse()
        {
            // Setup
            var raceClock      = new SimulatorRaceClock();
            var runService     = GetRunServiceForSensorImpulseHandlingTest(raceClock);
            var eventTriggered = false;

            runService.SensorMeasurementAdded += (race, runNumber, skier, span) => eventTriggered = true;

            // Execute & Assert
            raceClock.SendImpulse(1); // invalid impulse
            Assert.False(eventTriggered);

            raceClock.SendImpulse(3);
            Assert.True(eventTriggered);
        }