public void ImportUserData() { var json = _clipboardService.GetTextFromClipboard(); if (string.IsNullOrWhiteSpace(json)) { _okDialog.Show("Zwischenablage ist leer", "Bitte kopiere zunächst deine exportieren Benutzerdaten."); return; } List <AudioDramaUserData> newUserData; try { newUserData = JsonConvert.DeserializeObject <List <AudioDramaUserData> >(json); } catch (JsonException) { _okDialog.Show("Zwischenablage fehlerhaft", "Der Text in der Zwischenablage ist nicht valide. " + "Bitte überprüfe, ob du alles richtig kopiert hast."); return; } if (newUserData.GroupBy(x => x.Id).Any(x => x.Count() > 1)) { _okDialog.Show("Zwischenablage fehlerhaft", "Der Text in der Zwischenablage enthält Duplikate. " + "Bitte überprüfe, ob du alles richtig kopiert hast."); } var oldUserData = _userDataCache.Load(); _mergedUserDataForImporting = new List <AudioDramaUserData>(); foreach (var old in oldUserData) { if (newUserData.All(x => x.Id != old.Id)) { _mergedUserDataForImporting.Add(old); } } _mergedUserDataForImporting.AddRange(newUserData); _yesNoDialog.YesClicked += ImportDataFromClipboard(); _yesNoDialog.Show( "Daten aus Zwischenablage importieren?", $"Datensätze: {newUserData.Count}\n" + $"Als gehört markiert: {newUserData.Count(x => x.Heard)}\n" + $"Als Favorit markiert: {newUserData.Count(x => x.IsFavorite)}"); }