示例#1
0
        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 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));
            }
        }
        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));
            }
        }
示例#4
0
        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);
            }
        }
示例#5
0
        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));
            }
        }
        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();
            }
        }
 public ChartBase()
 {
     _pickedColours = new List <int>();
     _stopWatch     = new Stopwatch();
     _binder        = new PlotlyBinder();
 }