Ejemplo n.º 1
0
        private void Update()
        {
            try
            {
                //if (NavigationManager.)
                Data7.Clear();
                DataTotal.Clear();
                Succeeded    = false;
                DataUpToDate = false;

                if (string.IsNullOrEmpty(City) || City.Length < 3)
                {
                    return;
                }

                try
                {
                    var path = GetUriFromCity(City);
                    if (new UriBuilder(NavigationManager.Uri).Path != path)
                    {
                        NavigationManager.NavigateTo(path);
                    }
                }
                catch
                {
                }

                if (CitiesRepository.CitiesToKeys.TryGetValue(City, out string?key))
                {
                    ShowCityData(key);
                }
            }
            catch (Exception ex)
            {
                Toaster.Add(ex.Message, MatToastType.Danger, "Error");
            }
        }
Ejemplo n.º 2
0
        private void ShowCityData(string?cityKey)
        {
            if (string.IsNullOrEmpty(cityKey))
            {
                return;
            }
            DateTime from = ShowAllData ? DateTime.MinValue : DateTime.UtcNow.AddDays(-7);
            IEnumerable <ICovid19Data> data;

            if (ShowStateData)
            {
                Succeeded = CovidApi.TryGetStateData(cityKey, from, out data);
            }
            else
            {
                Succeeded = CovidApi.TryGetCityData(cityKey, from, out data);
            }

            if (Succeeded)
            {
                if (lastCity != City)
                {
                    Logger.LogDebug($"Received data for city {City} ({cityKey})");
                    lastCity = City;
                }

                var covid19Data = data as ICovid19Data[] ?? data.ToArray();
                DatasetCurrent = covid19Data.Last();


                var currentDate = DatasetCurrent.LastUpdate.Date;
                HospitalizationService.TaskCompletionSource.Task.Wait();
                var hospitalizationData = HospitalizationService.GetStateRecordsByCityKey(cityKey, from);
                var hospitalizationList = hospitalizationData.ToList();
                HospitalizationDatasetCurrent = hospitalizationList.Last();


                DataUpToDate = DateTime.Now.AddHours(-5).Date <= currentDate;
                Data7.AddRange(covid19Data.Select(x => new TimePoint(x.LastUpdate, x.Cases7Per100k)));
                DataTotal.AddRange(hospitalizationList.Select(x =>
                                                              new TimePoint(x.Date, x.Hospitalization7TIncidence)));
                colorRki     = RkiColorFromValue(DatasetCurrent.Cases7Per100k);
                colorRkiHosp = HospitalizationDatasetCurrent.Hospitalization7TIncidence switch
                {
                    var i and >= 3 and < 6 => RkiColorFromValue(35),
                    var i and > 6 and < 9 => RkiColorFromValue(50),
                    var i and > 9 => RkiColorFromValue(500),
                    _ => RkiColorFromValue(0)
                };

                if (!DataUpToDate)
                {
                    ShowToastOnlyOncePerScope(
                        $"Die aktuellen Covid-19 Fälle können derzeit nicht angezeigt werden. Das RKI arbeitet an der Lösung des Problems...",
                        MatToastType.Danger, "Störung RKI");
                }
                else if (DateTime.Now.Date != DatasetCurrent.LastUpdate.Date)
                {
                    ShowToastOnlyOncePerScope(
                        $"Das Dashboard zeigt zur Zeit noch den Datenstand vom Vortag an. In der Regel erfolgt die Aktualisierung der dem RKI neu übermittelten Covid-19 Fälle ab 03:00 Uhr. Bitte achten Sie auf die Angabe des Datenstandes unten im Dashboard",
                        MatToastType.Info, "Hinweis");
                }
            }
            else
            {
                Toaster.Add($"Keine Daten für die Stadt {City}", MatToastType.Warning);
            }
        }