/// <summary> /// Starts the training /// </summary> /// <param name="enduranceDataService">Service to communicate with the peripheral.</param> /// <param name="gpsService">Service to get GPS coordinates from the environment.</param> public void Start(EnduranceDataService enduranceDataService, IGpsService gpsService) { cancellation = new CancellationTokenSource(); Task.Factory.StartNew(() => { laps = new List <Lap>(); heartRate = new HeartRate(); enduranceDataService.StartActivitiy(); gpsService.StartTracking(); while (!cancellation.Token.IsCancellationRequested) { Thread.Sleep(trainingsReadIntervalMs); var nextLapDto = enduranceDataService.GetNextRawLap(); var nextHeartRate = enduranceDataService.GetHeartRate(); var lap = new Lap(nextLapDto.LapDistance, nextLapDto.LapTime); laps.Add(lap); heartRate = heartRate.AddPulses(nextHeartRate.Select(h => (h.Item1, h.Item2.Pulse)).ToList()); } enduranceDataService.StopActivity(); gpsService.StopTracking(); gpsCoordinates = gpsService.GetCoordinates().Select(c => new GpsCoordinate(c.Item1, c.Item2)).ToList(); } ); }
public TrainingController(IUnityContainer unityContainer) { enduranceDataService = unityContainer.Resolve <EnduranceDataService>(); trainingService = unityContainer.Resolve <ITrainingService>(); repository = unityContainer.Resolve <ITrainingRepository>(); }
/// <summary> /// Starts a training on the backend service. /// </summary> public void StartTraining(EnduranceDataService enduranceDataService) { client.PostAsync($"{baseUrl}/Training/start", null).GetAwaiter().GetResult(); }
public StartActivityUiCommand(ITrainingService trainingService, EnduranceDataService enduranceDataService) { this.trainingService = trainingService; this.enduranceDataService = enduranceDataService; }
/// <summary> /// Starts a new training. /// </summary> /// <param name="enduranceDataService">Service to communicate with the peripheral.</param> public void StartTraining(EnduranceDataService enduranceDataService) { training = new Training(Type.Running); training.Start(enduranceDataService, gpsService); }