Beispiel #1
0
        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();
        }
Beispiel #2
0
        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);
     }
 }
Beispiel #4
0
        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);
        }
Beispiel #5
0
    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);
    }