protected async Task GetStoredChart() { _stopWatch.Start(); await Wait.Show(); StateHasChanged(); //todo: reinstate new only //if (!NewOnly) //{ // Config.Data.Datasets.Clear(); // await JsRuntime.SetupChart(Config); //} try { dynamic context = new EvalContext(JSRuntime); (context as EvalContext).Expression = () => context.ClientStorage.fetchChartData(); var log = await(context as EvalContext).InvokeAsync <string>(); using (var reader = new SwitchReader(new StringReader(log))) { var data = await PlotlyBinder.Read(reader, SampleRate == 0? 1 : SampleRate, false, NewOnly?NewestTimestamp : DateTime.MinValue, minimumFitness : MinimumFitness, activityLogger : _activityLogger); await ShowChart(data); } } catch (Exception ex) { ShowError(ex, "An error occurred attempting to bind."); } finally { await Wait.Hide(); } }
public async Task Given_optimizer_data_When_supplying_minimum_date_Then_should_return_newer_only() { var unit = new PlotlyBinder(); var assembly = Assembly.GetExecutingAssembly(); var name = assembly.GetManifestResourceNames().Single(str => str.EndsWith("optimizer.txt")); using (var file = new SwitchReader(new StreamReader(assembly.GetManifestResourceStream(name)))) { var actual = await unit.Read(file, 1, false, DateTime.Parse("2019-05-17 03:29:38")); Assert.True(actual.All(aa => aa.Value.Y.Count() == 1)); } }
public JsonResult Sample(int sampleRate) { var builder = new StringBuilder(); using (var file = new SwitchReader(new StreamReader(Path.Combine(_configuration.GetValue <string>("ResultsPath"), "optimizer.txt")))) { var binder = new PlotlyBinder(); var data = binder.Read(file, sampleRate).Result; return(Json(data)); } }
private async Task BindRemote() { if (!NewOnly) { _pickedColours.Clear(); } using (var file = new SwitchReader(new StreamReader((await HttpClient.GetStreamAsync($"http://localhost:5000/api/data"))))) { var data = await PlotlyBinder.Read(file, SampleRate == 0? 1 : SampleRate, false, NewOnly?NewestTimestamp : DateTime.MinValue, activityLogger : _activityLogger); ShowChart(data); } }
public async Task Given_optimizer_data_And_sample_rate_When_binding_Then_should_return_sampled_series() { var unit = new PlotlyBinder(); var assembly = Assembly.GetExecutingAssembly(); var name = assembly.GetManifestResourceNames().Single(str => str.EndsWith("optimizer.txt")); using (var file = new SwitchReader(new StreamReader(assembly.GetManifestResourceStream(name)))) { var actual = await unit.Read(file, 2); Assert.Equal(5, actual.Count()); Assert.True(actual.All(a => ExpectedLines / 2 - a.Value.Y.Count() < 100)); } }
public async Task Given_optimizer_data_And_minimum_fitness_When_binding_Then_should_return_all_series() { var unit = new PlotlyBinder(); var assembly = Assembly.GetExecutingAssembly(); var name = assembly.GetManifestResourceNames().Single(str => str.EndsWith("optimizer.txt")); using (var file = new SwitchReader(new StreamReader(assembly.GetManifestResourceStream(name)))) { var actual = await unit.Read(file, minimumFitness : 0d); Assert.Equal(5, actual.Count()); Assert.True(actual.All(a => a.Value.Y.Count() == 1386)); } }
public void Switch_Notifies_When_ToggledOff() { // arrange SwitchState state = SwitchState.On; ExternalSwitchMemory externalSwitch = new ExternalSwitchMemory(state); SwitchReader reader = new SwitchReader(externalSwitch); reader.OnSwitchChanged = (s) => state = s; // act externalSwitch.CurrentState = SwitchState.Off; // assert Assert.AreEqual(SwitchState.Off, state); }
public void Switch_NotifiesOnlyOnce_When_ToggledOnTwice() { // arrange int toggleCount = 0; ExternalSwitchMemory externalSwitch = new ExternalSwitchMemory(SwitchState.Off); SwitchReader reader = new SwitchReader(externalSwitch); reader.OnSwitchChanged = (s) => toggleCount++; // act externalSwitch.CurrentState = SwitchState.On; externalSwitch.CurrentState = SwitchState.On; // assert Assert.AreEqual(1, toggleCount); }
public void Switch_DoesNotNotify_When_ToggledOn_And_AlreadyOn() { // arrange int toggleCount = 0; ExternalSwitchMemory externalSwitch = new ExternalSwitchMemory(SwitchState.On); SwitchReader reader = new SwitchReader(externalSwitch); externalSwitch.CurrentState = SwitchState.On; reader.OnSwitchChanged = (s) => toggleCount++; // act externalSwitch.CurrentState = SwitchState.On; // assert Assert.AreEqual(0, toggleCount); }
protected async Task UploadFile() { _stopWatch.Start(); await Wait.Show(); //todo: reinstate new only //if (!NewOnly) //{ // Config.Data.Datasets.Clear(); // await JsRuntime.SetupChart(Config); //} _binder = new PlotlyBinder(); try { var fileReader = FileReaderService.CreateReference(FileUpload); foreach (var file in await fileReader.EnumerateFilesAsync()) { using (Stream stream = await file.OpenReadAsync()) { using (var streamReader = new StreamReader(stream)) { using (var reader = new SwitchReader(streamReader)) { //wait.ProgressPercent = (int)(stream.Length / (stream.Position+1))*100; var data = await _binder.Read(reader, SampleRate == 0? 1 : SampleRate, false, NewOnly?NewestTimestamp : DateTime.MinValue, minimumFitness : MinimumFitness); await ShowChart(data); //stream.Position = 0; //await JSRuntime.InvokeVoidAsync("ClientStorage.storeChartData", await streamReader.ReadToEndAsync()); } //ToastService.ShowSuccess("Chart data was stored."); } } } await fileReader.ClearValue(); } catch (Exception ex) { ShowError(ex, "An error occurred attempting to bind."); } finally { await Wait.Hide(); } }