public void TestThing() { using (var settingsFile = new TempFile()) using (var logFile = new TempFile()) { var settings = new HeartRateSettings(settingsFile); settings.Save(); using (var service = new TestHeartRateService( TimeSpan.FromMilliseconds(100))) { var formThread = new Thread(_ => { using (var form = new HeartRateForm( service, settingsFile, DateTime.Now)) { form.Show(); Thread.Sleep(100000); } }) { IsBackground = true }; formThread.Start(); } Thread.Sleep(100000); } }
public void Test() { using (var settingsFile = new TempFile()) using (var logFile = new TempFile()) { var settings = new HeartRateSettings(settingsFile) { LogFormat = "csv", LogFile = logFile }; settings.Save(); const int count = 3; var left = count; using (var mre = new CountdownEvent(count)) using (var service = new TestHeartRateService( TimeSpan.FromMilliseconds(100))) { service.HeartRateUpdated += (status, bpm) => { if (Interlocked.Decrement(ref left) >= 0) { mre.Signal(); } }; var formThread = new Thread(_ => { using (var form = new HeartRateForm( service, settingsFile, DateTime.Now)) { form.Show(); mre.Wait(); Thread.Sleep(1000); } }) { IsBackground = true }; formThread.Start(); mre.Wait(); } var actual = File.ReadAllText(logFile); // TODO: finish test. } }
private async Task AnalyzeCandidate(Candidate value) { // --- Precreate //[Heart rate], if not yet existent // -> Appropriate Range // 60-89 Relaxed // 90-99 Warning // 100-120 Critical try { var candidateData = JsonConvert.DeserializeObject <HeartRateData>(value.Neuron.Tag); MainForm.logger.Info($"Analyzing '{candidateData.Timestamp}'..."); #region Create //Get Events [Timestamp] var interneuronId = Guid.NewGuid().ToString(); await this.neuronApplicationService.CreateNeuron( Properties.Settings.Default.AvatarUrl, interneuronId, HeartRateForm.cleanForJSON($"Get Events {candidateData.Timestamp}"), // -> Original new Terminal[] { new Terminal() { TargetId = value.Neuron.NeuronId, Effect = NeurotransmitterEffect.Excite, Strength = 1f } }, Properties.Settings.Default.AnalyzerAuthorId ); //[Timestamp] var timestampId = Guid.NewGuid().ToString(); await this.neuronApplicationService.CreateNeuron( Properties.Settings.Default.AvatarUrl, timestampId, HeartRateForm.cleanForJSON(candidateData.Timestamp), // -> Get Events[Timestamp] new Terminal[] { new Terminal() { TargetId = interneuronId, Effect = NeurotransmitterEffect.Excite, Strength = 0.33333f } }, Properties.Settings.Default.AnalyzerAuthorId ); #endregion #region Update //Get var getNeuron = (await this.neuronQueryService.GetNeuronById( Properties.Settings.Default.AvatarUrl, Properties.Settings.Default.GetId )).First(); await this.neuronApplicationService.AddTerminalsToNeuron( Properties.Settings.Default.AvatarUrl, getNeuron.NeuronId, // -> Get Events[Timestamp] new Terminal[] { new Terminal() { TargetId = interneuronId, Effect = NeurotransmitterEffect.Excite, Strength = 0.33333f } }, Properties.Settings.Default.AnalyzerAuthorId, getNeuron.Version ); //Events var eventsNeuron = (await this.neuronQueryService.GetNeuronById( Properties.Settings.Default.AvatarUrl, Properties.Settings.Default.EventsId )).First(); await this.neuronApplicationService.AddTerminalsToNeuron( Properties.Settings.Default.AvatarUrl, eventsNeuron.NeuronId, // -> Get Events[Timestamp] new Terminal[] { new Terminal() { TargetId = interneuronId, Effect = NeurotransmitterEffect.Excite, Strength = 0.33333f } }, Properties.Settings.Default.AnalyzerAuthorId, eventsNeuron.Version ); //Original var rateNeuron = this.heartRateValues.Where(n => n.Tag == candidateData.HeartRate).FirstOrDefault(); string rateId = rateNeuron == null ? Properties.Settings.Default.UnknownRateId : rateNeuron.NeuronId; await this.neuronApplicationService.AddTerminalsToNeuron( Properties.Settings.Default.AvatarUrl, value.Neuron.NeuronId, new Terminal[] { // -> [Heart rate] new Terminal() { TargetId = rateId, Effect = NeurotransmitterEffect.Excite, Strength = 1 }, // -> [Timestamp] new Terminal() { TargetId = timestampId, Effect = NeurotransmitterEffect.Excite, Strength = 1 }, // ->Analyzed new Terminal() { TargetId = Properties.Settings.Default.AnalyzedId, Effect = NeurotransmitterEffect.Excite, Strength = 1 }, }, Properties.Settings.Default.AnalyzerAuthorId, value.Neuron.Version ); #endregion value.Status = Candidate.StatusValue.Analyzed; } catch (Exception ex) { MainForm.logger.Error($"Error: {ex.ToString()}"); } }