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>(); }
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); }