public void AddFromFilesystem() { var fd = new OpenFileDialog(); fd.ShowDialog(); var änderungsdatei = new Bankleitzahlenänderungsdatei { Dateiname = fd.SafeFileName, Uri = new Uri(fd.FileName) }; ÄnderungsdateiAuswahl.Add(änderungsdatei); NotifyOfPropertyChange(() => CanÄnderungsdateiAuswahl); SelectedÄnderungsdateiAuswahl = SelectedÄnderungsdateiAuswahl ?? ÄnderungsdateiAuswahl.FirstOrDefault(); }
public async Task<List<Bank>> LadeBankenAusÄnderungsdatei(Bankleitzahlenänderungsdatei änderungsdatei) { switch (änderungsdatei.Uri.Scheme) { case "file": return await LadeBankenAusÄnderungsdatei_Lokal(änderungsdatei); case "http": case "https": return await LadeBankenAusÄnderungsdatei_Web(änderungsdatei); default: throw new ArgumentException("URI passt nicht."); } }
public void LadeÄnderungsdatei(Bankleitzahlenänderungsdatei selectedÄnderungsdateiAuswahl) { Task.Run(() => { var bundesbankService = new BundesbankService(); var banken = bundesbankService.GetBanken(selectedÄnderungsdateiAuswahl).Result; var banken_UIElements = from bank in banken select new HighlightableTextBlockViewModel { Text = bank.ToString() }; Execute.OnUIThread(() => { Banken.Clear(); Banken.AddRange(banken_UIElements); }); }).ContinueWith(task => { if (task.IsFaulted) { var hasFileHelperException = false; task.Exception.Flatten().Handle(e => { if (e.Source == "FileHelpers") hasFileHelperException = true; return true; }); if (hasFileHelperException) { MessageBox.Show("Datei konnte nicht geparst werden!"); } else { MessageBox.Show("Ein Fehler ist passiert!"); } } }); }
public void LadeÄnderungsdatei(Bankleitzahlenänderungsdatei selectedÄnderungsdateiAuswahl) { Task.Run(() => { var bundesbankService = new BundesbankService(); var banken = bundesbankService.GetBanken(selectedÄnderungsdateiAuswahl).Result; var banken_UIElements = from bank in banken select new HighlightableTextBlock(bank.ToString()); // Muss im UI-Thread ausgeführt werden: Dispatcher.Invoke(() => { BankenListBoxItems.Clear(); banken_UIElements.ToList().ForEach(ui => BankenListBoxItems.Add(ui)); }); }).ContinueWith(task => { if (task.IsFaulted) { var hasFileHelperException = false; task.Exception.Flatten().Handle(e => { if (e.Source == "FileHelpers") hasFileHelperException = true; return true; }); if (hasFileHelperException) { MessageBox.Show("Datei konnte nicht geparst werden!"); } else { MessageBox.Show("Ein Fehler ist passiert!"); } } }); }
public async void Bundesbank_BankleitzahlenänderungsdateiService_LadeBankenAusDateiÜbersGemockteWeb() { var änderungsdatei = new Bankleitzahlenänderungsdatei { Uri = new Uri("https://foo.bla/blz_2015_09_07_txt.txt") }; var banken = await _service.LadeBankenAusÄnderungsdatei(änderungsdatei); Assert.That(banken.Count(), Is.EqualTo(18424)); var bundesbank = banken.First(); Assert.That((int)bundesbank.Bankleitzahl, Is.EqualTo(10000000)); Assert.That(bundesbank.Name, Is.EqualTo("Bundesbank")); Assert.That(bundesbank.Adresse.City, Is.EqualTo("Berlin")); Assert.That(bundesbank.Adresse.PostalCode, Is.EqualTo("10591")); var bankMitUmlaut = banken.ElementAt(17); Assert.That((int)bankMitUmlaut.Bankleitzahl, Is.EqualTo(10030500)); Assert.That(bankMitUmlaut.Name, Is.EqualTo("Bankhaus Löbbecke")); Assert.That(bankMitUmlaut.Adresse.City, Is.EqualTo("Berlin")); Assert.That(bankMitUmlaut.Adresse.PostalCode, Is.EqualTo("10117")); }
private void AddFromFilesystemMenuItem_Click(object sender, RoutedEventArgs e) { var fd = new OpenFileDialog(); fd.ShowDialog(); var änderungsdatei = new Bankleitzahlenänderungsdatei { Dateiname = fd.SafeFileName, Uri = new Uri(fd.FileName) }; ÄnderungsdateiAuswahl.Add(änderungsdatei); PropertyChanged(this, new PropertyChangedEventArgs(nameof(IstAuswahlMöglich))); SelectedÄnderungsdateiAuswahl = SelectedÄnderungsdateiAuswahl ?? ÄnderungsdateiAuswahl.FirstOrDefault(); }
private async Task<List<Bank>> LadeBankenAusÄnderungsdatei_Web(Bankleitzahlenänderungsdatei änderungsdatei) { using (var webclient = WebClientFactory.CreateWebClient()) { var stream = await webclient.OpenReadTaskAsync(änderungsdatei.Uri); return LadeBankenAusStream(stream); } }
private Task<List<Bank>> LadeBankenAusÄnderungsdatei_Lokal(Bankleitzahlenänderungsdatei änderungsdatei) { var pfad = änderungsdatei.Uri.LocalPath; var stream = FileSystem.File.OpenRead(pfad); var banken = LadeBankenAusStream(stream); return Task.FromResult(banken); }
public async Task<List<Bank>> GetBanken(Bankleitzahlenänderungsdatei änderungsdatei) => await BankleitzahlenänderungsdateiService.LadeBankenAusÄnderungsdatei(änderungsdatei);
public async void Bundesbank_BankleitzahlenänderungsdateiService_LadeBankenAusLokalerDatei() { var änderungsdatei = new Bankleitzahlenänderungsdatei { Uri = new Uri(@"c:\data\Bundesbankänderungsdateien\blz_2015_09_07_txt.txt") }; var banken = await _service.LadeBankenAusÄnderungsdatei(änderungsdatei); Assert.That(banken.Count(), Is.EqualTo(3)); var bank = banken.First(); Assert.That((int)bank.Bankleitzahl, Is.EqualTo(10030500)); Assert.That(bank.Name, Is.EqualTo("Bankhaus Löbbecke")); Assert.That(bank.Adresse.City, Is.EqualTo("Berlin")); Assert.That(bank.Adresse.PostalCode, Is.EqualTo("10117")); }