Exemplo n.º 1
0
        public override async Task Get(CovidRequest request, IServerStreamWriter <CovidResponse> responseStream, ServerCallContext context)
        {
            using var span = this.tracer.BuildSpan(nameof(CovidDataService.Get))
                             .WithTag(nameof(request.CountryRegion), request.CountryRegion)
                             .WithTag(nameof(request.ProvinceState), request.ProvinceState)
                             .WithTag(nameof(request.County), request.County)
                             .WithTag(nameof(request.Fields), request.Fields?.ToString())
                             .WithTag(nameof(request.DatesCase), request.DatesCase.ToString())
                             .WithTag(nameof(request.AbsoluteDates), request.AbsoluteDates?.ToString())
                             .WithTag(nameof(request.RelativeDates), request.RelativeDates?.ToString())
                             .StartActive();

            var data = this.timeseries.Query();

            if (!string.IsNullOrWhiteSpace(request.CountryRegion))
            {
                data = data.Where(x => x.CountryRegion == request.CountryRegion);
            }

            request.ProvinceState = request.ProvinceState ?? "";
            request.County        = request.County ?? "";

            data = data.Where(x => x.ProvinceState == request.ProvinceState);
            data = data.Where(x => x.County == request.County);

            if (request.Fields.Any())
            {
                data = data.Where(x => request.Fields.Contains(x.Field));
            }

            if (request.DatesCase == CovidRequest.DatesOneofCase.RelativeDates)
            {
                throw new NotImplementedException("Relative Dates not Implemented");
            }
            else if (request.AbsoluteDates != null)
            {
                var dates = request.AbsoluteDates.Dates.Select(x => x.ToDateTime().Date);
                data = data.Where(x => dates.Contains(x.Date));
            }

            await foreach (var record in data.AsAsyncEnumerable())
            {
                var c = new CovidResponse()
                {
                    CountryRegion = record.CountryRegion,
                    ProvinceState = record.ProvinceState,
                    County        = record.County,
                    Field         = record.Field,
                    Date          = Timestamp.FromDateTime(DateTime.SpecifyKind(record.Date, DateTimeKind.Utc)),
                    Value         = record.Value ?? 0
                };

                await responseStream.WriteAsync(c);
            }
        }
Exemplo n.º 2
0
        private async void covid19Settings_Load(object sender, EventArgs e)
        {
            if (covidRequest != null)
            {
                return;
            }

            Enabled = false;
            Cursor  = Cursors.WaitCursor;

            covidRequest = new CovidRequest();
            await covidRequest.LoadAsync();


            if (covidRequest.Countries.Count == 0)
            {
                MessageBox.Show("Can't find File any with db (*.json) or Load db from Internet!", "Error");
                Enabled = true; covidRequest = null; Close();
                return;
            }

            comboBox1.SelectedIndex = 0;
            comboBox2.Items.AddRange(covidRequest.Countries.ToArray());
            comboBox2.SelectedItem = covidRequest.Countries.Contains("Ukraine") ? "Ukraine" : (covidRequest.Countries.FirstOrDefault() ?? "");

            string   s       = comboBox2.SelectedItem.ToString();
            var      d       = covidRequest.GetLastDate(comboBox2.SelectedItem.ToString());
            DateTime endDate = new DateTime(Math.Min(
                                                DateTime.Now.Ticks,
                                                covidRequest.GetLastDate(comboBox2.SelectedItem.ToString()).Ticks
                                                ));

            dateTimePicker1.Value         = endDate.AddDays(-((DefaultPointsCount * 3) + 1));
            dateTimePicker2.Value         = endDate;
            numericUpDown1.Value          = DefaultPointsCount;
            dateTimePicker1.ValueChanged += updateDates;
            dateTimePicker2.ValueChanged += updateDates;

            Cursor  = Cursors.Default;
            Enabled = true;
        }