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); } }
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; }