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()); }
// 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()}");