private async Task LoadData(bool lores = false) { Result = ""; if (Connectivity.NetworkAccess != NetworkAccess.Internet) { await Application.Current.MainPage.DisplayAlert("Benötige Internetverbindung", "Zum Laden der Dateien wird eine Internetverbindung benötigt.", "Okay"); } else if (await Application.Current.MainPage.DisplayAlert("Große Dateimengen herunterladen?", "Beim Fortfahren werden mehrere Megabyte (bis zu 500MB) Bilddaten heruntergeladen. Am besten sollte dies mit WLAN heruntergeladen werden.", "Fortfahren", "Abbrechen")) { IsBusy = true; await LoadJson(); try { Dictionary <string, string> filesList = new Dictionary <string, string>(); //var count = ((App)App.Current).TaxonImages.Count; //count += tFilterItems.Count; var tFilterItems = Load.FromFile <FilterItem>("TaxonFilterItems.json"); var i = 0; foreach (var image in ((App)App.Current).TaxonImages) { string[] fileNames; if (!lores) { fileNames = new string[] { $"{image.Title}-300x300.jpg", $"{image.Title}.jpg" }; } else { fileNames = new string[] { $"{image.Title}-113x150.jpg", $"{image.Title}.jpg" }; } if (!filesList.ContainsKey(fileNames[0])) { filesList.Add(fileNames[0], fileNames[1]); } } foreach (FilterItem tFilter in tFilterItems) { string[] fileNames; if (tFilter.ListSourceJson != null) { foreach (string img in tFilter.ListSourceJson) { if (img != null) { if (!lores) { fileNames = new string[] { $"{img.Trim()}-300x300.jpg", $"{img.Trim()}.jpg" }; } else { fileNames = new string[] { $"{img.Trim()}-113x150.jpg", $"{img.Trim()}.jpg" }; } if (!filesList.ContainsKey(fileNames[0])) { filesList.Add(fileNames[0], fileNames[1]); } } } } } //filesList = (List<string[]>)filesList.DistinctBy(x => x.).ToList(); var count = filesList.Count; foreach (var fileName in filesList) { i++; if (!_fileHelper.FileExists(fileName.Key)) { try { var downloadFile = _fileHelper.DownloadFileAsync($"https://www.bodentierhochvier.de/wp-content/uploads/{fileName.Key}"); if (downloadFile != null) { await _fileHelper.CopyFileToLocalAsync(downloadFile, fileName.Value); } else { downloadFile = _fileHelper.DownloadFileAsync($"https://www.bodentierhochvier.de/wp-content/uploads/{fileName.Value}"); if (downloadFile != null) { await _fileHelper.CopyFileToLocalAsync(downloadFile, fileName.Value); } } string percent = ((double)(i * 1000 / count) / 10).ToString("0.0"); DataStatus = $"Lade Bilder {i} von {count} ({percent} %)"; } catch (Exception e) { throw e; } } } var versions = _fileHelper.GetAllText(VersionsFile); var versionsJson = JObject.Parse(versions); var versionDate = versionsJson["TaxonImages.json"].Value <string>(); var imageDate = versionsJson["Versions.json"].Value <string>(); Preferences.Set("imageDate", imageDate); DataStatus = $"Daten vom Stand {DateTime.Parse(versionDate).ToString("dd.MM.yyyy")}."; Result = "Daten erfolgreich aktualisiert."; } catch (Exception e) { var msg = e.Message; Result = "Beim Laden der Bilder ist ein Problem aufgetreten."; } finally { IsBusy = false; } } }