Esempio n. 1
0
        private bool CheckOptionAndLoadLandkreise(IMessageContainer arg)
        {
            if (arg.Content is BaseMessageOptions option && option == BaseMessageOptions.LoadActualData)
            {
                var component = RkiCoronaLandkreiseComponent.GetInstance();
                component.RkiDataErrorEvent += this.Component_RkiDataErrorEvent;

                var landkreise = component.LoadData(out var safeData);

                if (safeData != null)
                {
                    SimpleStatusOverlays.ShowAsk("Question", "Overwrite local data with actual loaded data?", safeData);
                }

                if (landkreise == null)
                {
                    SimpleStatusOverlays.ActivityOff();
                    return(true);
                }

                // TODO aktuell wird nicht im jeden Datensatz das Datum hinterlegt.
                var districtItems = landkreise.Districts.Select(s => new DistrictItem
                {
                    Name          = s.Name,
                    Deaths        = s.Deaths,
                    WeekIncidence = s.WeekIncidence,
                    Date          = landkreise.Date
                });

                StaticDataManager.ActualLoadedDataDate = landkreise.Date;
                StaticDataManager.ActualLoadedData     = districtItems;
            }

            return(false);
        }
        internal static IEnumerable <Landkreis> GetCountyResults(string name)
        {
            var list = new List <Landkreis>();

            foreach (var filename in GetFiles())
            {
                var result = RkiCoronaLandkreiseComponent
                             .GetInstance()
                             .LoadFromFile(filename);

                result.Districts.InsertGermanyIfNotList(result.Date);

                var v = result
                        .Districts
                        .FirstOrDefault(w => w.Name.Equals(name));

                if (v == null)
                {
                    continue;
                }

                v.Date = result.Date;
                list.Add(v);
            }

            return(list.OrderBy(o => o.Date).ToList());
        }
        public int Run(string path)
        {
            var newComponent = RkiCoronaLandkreiseComponent.GetInstance();
            var files        = this.GetRkiFiles(path).ToList();

            foreach (var item in files)
            {
                var legacyData = JsonConvert.DeserializeObject <LegacyDataFormat>(File.ReadAllText(item));

                var date = legacyData.lastUpdate.RemoveTimeFromLastUpdateString();

                var newFilename = $"{HelperExtension.SubFolderRkiData()}/{HelperExtension.RkiFilename}-{date}.json";

                if (File.Exists(newFilename))
                {
                    continue;
                }

                var landkreise = new Landkreise();
                var d          = DateTime.Parse(date);
                landkreise.Date      = d;
                landkreise.Districts = legacyData.districts.Select(s =>
                                                                   new Landkreis
                {
                    Name          = s.name,
                    Date          = d,
                    Deaths        = s.deaths,
                    WeekIncidence = s.weekIncidence
                }
                                                                   ).ToList();

                newComponent.SaveToFile(landkreise, newFilename);
            }

            return(files.Count());
        }
Esempio n. 4
0
        // TODO: Wird noch umgebaut
        public void Import()
        {
            var files = Directory.GetFiles(this._subFolder)
                        .Where(w => w.Contains(HelperExtension.RkiFilename))
                        .ToArray();

            if (!files.Any())
            {
                return;
            }

            if (!ExistTables(this._databaseConnector))
            {
                this._databaseConnector.Create <RkiDataDb>();
            }

            var allExistDate = this._databaseConnector
                               .Select <RkiDataDb>()
                               .Select(s => s.StateTime)
                               .ToArray();

            var landkreise = this._databaseConnector
                             .Select <LandkreisDb>()
                             .ToArray();

            foreach (var file in files)
            {
                var result = RkiCoronaLandkreiseComponent
                             .GetInstance()
                             .LoadFromFile(file);

                if (allExistDate.Any(a => a.Equals(result.Date)))
                {
                    continue;
                }

                var dataValuesIds = new List <int>();
                foreach (var item in result.Districts)
                {
                    var landkreis = landkreise.FirstOrDefault(f => f.Name.Equals(item.Name));

                    if (landkreis == null)
                    {
                        continue;
                    }

                    var id = this._databaseConnector.Insert(new DataValuesDb
                    {
                        LandkreisDbId = landkreis.Id,
                        WeekIncidence = item.WeekIncidence,
                        Deaths        = item.Deaths,
                        Cases         = item.Cases,
                        Date          = item.Date
                    });
                }

                var rkiDataDb = new RkiDataDb
                {
                    StateTime       = result.Date,
                    DataValuesDbIds = dataValuesIds.ToArray()
                };
                this._databaseConnector.Insert(rkiDataDb);
            }

            var data = this._databaseConnector.Select <DataValuesDb>();

            Debug.WriteLine($"Rki data value count: {data.Count()}");