private void connect(string suche) { //mySettings ms = new mySettings(); //MessageBox.Show(ms.DNB_API); //string key = "1159cfc6b965e8a03abc3bd8227afa"; //TODO: wird später aus den Settings entnommen string key = mySettings.DNB_API; WebClient w = new WebClient(); w.Encoding = Encoding.UTF8; string urlEnc = WebUtility.UrlEncode(suche); urlEnc = urlEnc.Replace("+", "%20and%20"); //string myURL = "https://services.dnb.de/sru/dnb?version=1.1&operation=searchRetrieve&query=" + urlEnc + "&recordSchema=MARC21-xml&accessToken=" + key; string s = w.DownloadString("https://services.dnb.de/sru/dnb?version=1.1&operation=searchRetrieve&query=" + urlEnc + "&recordSchema=MARC21-xml&accessToken=" + key); dnbdata = new DNBBookData(s); //txtVorschau.Text = s; //txtInput.Focus(); // auch als XML-Doc laden XmlDocument doc = new XmlDocument(); doc.LoadXml(s); var nodeList = doc.GetElementsByTagName("numberOfRecords"); Int32 count = 0; List <string> infolist = new List <string>(); foreach (XmlNode item in nodeList) { //MessageBox.Show(item.InnerText); count = Int32.Parse(item.InnerText); if (count >= 1) { if (count > 20) { MessageBox.Show("Die Suche brachte mehr als 20 Treffer!" + "\r\n" + "Bitte Suchfrage ändern!"); return; } else { infolist = InfoMulti._InfoMulti(s).Split('~').ToList(); lbAuswahl.ItemsSource = infolist; //return; } } else { MessageBox.Show("Kein Treffer, Suche verfeinern!"); } //lbAuswahl.Items.Add("Titel: " + dnbdata.dnb_titel + ", Autor: " + dnbdata.dnb_autor + ", Jahr: " + dnbdata.dnb_jahr + ", ISBN: " + dnbdata.dnb_isbn_13); } //lbAuswahl.ItemsSource = InfoMulti._InfoMulti(s).Split('~').ToList(); }
private void Window_Loaded(object sender, RoutedEventArgs e) { //this.DataContext = newBook; //Hilfstabellen laden/aktivieren sett = new mySettings(); Admin.LoadGenre(ugridGenre); LoadAuxTab(); btnPublNew.Visibility = Visibility.Hidden; NameRolle nr = new NameRolle(); nr_list = new List <NameRolle>(); verl_list = new List <DnbVerlag>(); print_list = new List <DnbPrinter>(); var language = from lg in Admin.conn.Language orderby lg.Language1 select new { lng = lg.Language1, iso = lg.iso, id = lg.LanguageID }; cbLang.ItemsSource = language.ToList(); var bind = from b in Admin.conn.Bindung orderby b.SortBy select new { bnd = b.SortBy, id = b.BindingID }; cbBindung.ItemsSource = bind.ToList(); var typ = from t in Admin.conn.BuchTyp orderby t.SortBy select new { typ = t.SortBy, id = t.ID }; cbBuchTyp.ItemsSource = typ.ToList(); var sach = from s in Admin.conn.Sachgruppe orderby s.SortBy select new { sg = s.SortBy, id = s.GenreID }; cbSachgruppe.ItemsSource = sach.ToList(); var sto = from st in Admin.conn.Standort orderby st.SortBy select new { so = st.SortBy, id = st.ID }; cbStandort.ItemsSource = sto.ToList(); var kat = from k in Admin.conn.DDC_Haupt orderby k.DDC select new { kat = k.DDC_Name, id = k.ID }; cbKategorie.ItemsSource = kat.ToList(); var serie = from s in Admin.conn.Serien orderby s.SortBy select new { serie = s.SortBy, id = s.ID }; cbSerie.ItemsSource = serie.ToList(); db = DNBDataHandling.GetDataDNB(dnbID); ShowPerson(); FindPublisher(db.dnb_verlagsname); FindLanguage(db.dnb_sprache); FindOrigLanguage(db.dnb_sprache_org); imgLoad(); LoadNewData(); }
private void LoadBookFromDNB(string dNBSuchString) { if (string.IsNullOrEmpty(dNBSuchString) == false) { if (dNBSuchString == "#") { MessageBox.Show("DNB-Suche wurde abgebrochen!"); keineDNBSuche = true; return; } cDNBBook = DNBDataHandling.GetDataDNB(dNBSuchString); } else { //MessageBox.Show("Kein Datensatz in der DNB vorhanden!" + "\r\n" + "Bitte gültige ISBN in der DNB suchen!"); SearchDNB f = new SearchDNB(false, cBook.Titel); f.ShowDialog(); LoadBookFromDNB(f.dnbID); } }
private void BtnSearch_Click(object sender, RoutedEventArgs e) { NameRolle nr = new NameRolle(); nr_list = new List <NameRolle>(); string input = txtInput.Text; if (string.IsNullOrEmpty(input) == true) { MessageBox.Show("Zuerst Dateiname (ohne Endung) eingeben!"); return; } string s = s = File.ReadAllText(sampleXml + txtInput.Text.Trim() + ".mrcx");; DataHandling.DNBBookData dnbdata = new DNBBookData(s); //MessageBox.Show(dnbdata.dnb_nr + "/" + dnbdata.dnb_isbn_13 + "/" + dnbdata.dnb_isbn + "/" + dnbdata.dnb_titel + "/" + dnbdata.dnb_stichwort + "/" + dnbdata.dnb_index); //cbTitel.Items.Add(dnbdata.dnb_Autor_sort + ", " + dnbdata.dnb_Rolle); string[] name = dnbdata.dnb_Autor_sort.Split(','); string[] ret = FindAutor(name[0]).Split('#'); nr_list.Add(new NameRolle() { name = dnbdata.dnb_Autor_sort, rolle = dnbdata.dnb_Rolle, nameInDB = ret[1], currID = Int32.Parse(ret[0]) }); if (dnbdata.dnb_mitautor != null) { dnbdata.dnb_mitautor = dnbdata.dnb_mitautor.Substring(0, dnbdata.dnb_mitautor.Length - 1); dnbdata.dnb_mitautor_rolle = dnbdata.dnb_mitautor_rolle.Substring(0, dnbdata.dnb_mitautor_rolle.Length - 1); List <string> mitAutor = dnbdata.dnb_mitautor.Split(';').ToList(); List <string> rolleMitAutor = dnbdata.dnb_mitautor_rolle.Split(';').ToList(); for (int i = 0; i < mitAutor.Count; i++) { name = mitAutor[i].Split(','); string[] retA = FindAutor(name[0]).Split('#'); nr_list.Add(new NameRolle() { name = mitAutor[i], rolle = rolleMitAutor[i], nameInDB = retA[1], currID = Int32.Parse(retA[0]) }); } } // parts.Add(new Part() {PartName="crank arm", PartId=1234}); txtInput.Focus(); //lbTitel.Items.Clear(); foreach (var item in nr_list) { var rolleID = (from ri in Admin.conn.AutorRolle where ri.AutorKurz == item.rolle select ri).FirstOrDefault(); if (rolleID != null) { item.currRolleID = rolleID.ID; } } //Datagrid vorbereiten var autorrolle = (from ar in Admin.conn.AutorRolle select ar.AutorRolle1).ToList(); ComboBoxColumn.ItemsSource = autorrolle; DGNamen2.ItemsSource = nr_list; DGNamen.ItemsSource = nr_list; //cbTitel.ItemsSource = nr_list; var lang = from lg in Admin.conn.Language select lg; cbTest.ItemsSource = lang.ToList(); if (dnbdata.dnb_dcc1 != null) { FindDDC(dnbdata.dnb_dcc1); } //lbTitel.Items.Add(dnbdata.dnb_Autor_sort); //lbTitel.Items.Add(dnbdata.dnb_Rolle); //lbTitel.Items.Add(dnbdata.dnb_mitautor); //lbTitel.Items.Add(dnbdata.dnb_mitautor_rolle); }
public static string _InfoMulti(string myString) { //InfoMulti erg = new InfoMulti(); string input = null; //List<string> erg = new List<string>(); using (StringReader reader = new StringReader(myString)) { var titelMulti = new List <InfoMulti[]>(); string line; //int count = 0; while ((line = reader.ReadLine()) != null) { if (line.Contains("tag=\"016\"")) { line = reader.ReadLine(); while (line.Contains("</datafield>") == false) { if (line.Contains("code=\"a\"")) { //LBShow.Items.Add(SelectString(line)); // Write to console. ////MessageBox.Show(SelectString(line).ToString()); //dummy += SelectString(line) + "#";// Add to list. input += DNBBookData.SelectString(line) + "; "; } //erg.Add(input); line = reader.ReadLine(); } } if (line.Contains("tag=\"245\"")) { line = reader.ReadLine(); while (line.Contains("</datafield>") == false) { if (line.Contains("code=\"a\"")) { //LBShow.Items.Add(SelectString(line)); // Write to console. ////MessageBox.Show(SelectString(line).ToString()); //dummy += SelectString(line) + "#";// Add to list. string cName = DNBBookData.SelectString(line); if (cName.StartsWith("&#")) { string[] erg = cName.Split(';'); cName = erg[1].Substring(0, 3) + erg[2]; } input += cName + "; "; } line = reader.ReadLine(); } } if (line.Contains("tag=\"250\"")) { line = reader.ReadLine(); while (line.Contains("</datafield>") == false) { if (line.Contains("code=\"a\"")) { //LBShow.Items.Add(SelectString(line)); // Write to console. ////MessageBox.Show(SelectString(line).ToString()); //dummy += SelectString(line) + "#";// Add to list. input += DNBBookData.SelectString(line) + "; "; } line = reader.ReadLine(); } } if (line.Contains("tag=\"264\"")) { line = reader.ReadLine(); while (line.Contains("</datafield>") == false) { if (line.Contains("code=\"c\"")) { //LBShow.Items.Add(SelectString(line)); // Write to console. ////MessageBox.Show(SelectString(line).ToString()); //dummy += SelectString(line) + "#";// Add to list. input += DNBBookData.SelectString(line) + "~"; } line = reader.ReadLine(); } } //count += 1; //MessageBox.Show("count: " + count.ToString()); //erg.Add(input); } } return(input); }