}//Delete /// <summary> /// Nalezeni Knihy na zaklade jeho ID /// </summary> /// <param name="id">Hledane ID </param> /// <param name="kniha">Nalezeny BO kniha nebo null</param> /// <param name="errMsg">Chybové hlášení</param> /// <returns>TRUE hledání se provedlo, FALSE nastala chyba hledání</returns> public bool Find(long id, out Kniha kniha, out string errMsg) { errMsg = string.Empty; kniha = null; //Nalezeni knihy podle jeho id v DB try { DataConnection.Instance.Connect(); try { string sql = "SELECT AutorJmeno,AutorPrijmeni,NazevKnihy,Vydavatel,RokVydani,Vydani,Jazyk FROM Knihy WHERE (Id=@id)"; SqlCommand sqlCmd = DataConnection.Instance.CreateCommand(sql); try { sqlCmd.Parameters.AddWithValue("@id", id); var result = DataConnection.Instance.Select(sqlCmd); try { if (result.HasRows) { //Precteme jen prvni nalezeny, podle ID musí být jen jeden result.Read(); kniha = new Kniha() { Id = id, AutorJmeno = result.GetString(0), AutorPrijmeni = result.GetString(1), NazevKnihy = result.GetString(2), Vydavatel = result.GetString(3), RokVydani = result.GetInt32(4), Vydani = result.GetInt32(5), Jazyk = result.GetString(6) }; } } finally { result.Close(); } } finally { sqlCmd.Dispose(); } } finally { DataConnection.Instance.Close(); } } catch (Exception e) { errMsg = $"Chyba při Connection do DB \n{e.Message}"; return false; } return true; }//Find
public ListViewVM() { data = new Model.Kniha(); this.Zpet = new Command(this.Zpet_Execute); this.HA = new Command(this.HA_Execute); this.HN = new Command(this.HN_Execute); }
public void UpdateKniha(Kniha kniha) { var service = new Team024KnihaPortTypeClient(); service.update("024", "FYmoj1", kniha.id, kniha); service.Close(); }
private void VygenerovatOdstavec(CastTextu cast, Bible bible, Kniha kniha) { AktualniTextVerse += "<br/>"; foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); } }
private void VygenerovatCastKnihy(CastTextu cast, Bible bible, Kniha kniha) { VlozitSqlNadpis(cast is HlavniCastKnihy knihy ? knihy.Nadpis : ((CastKnihy)cast).Nadpis); foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); } }
private void VygenerovatRadekPoezie(CastTextu cast, Bible bible, Kniha kniha) { foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); } AktualniTextVerse += "<br/>"; }
private void VygenerovatKnihu(CastTextu cast, Bible bible, Kniha kniha) { foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); PridatRozpracovanyVers(); } }
private void VygenerovatCastPoezie(CastTextu cast, Bible bible, Kniha kniha) { if (!string.IsNullOrEmpty(AktualniTextVerse)) { AktualniTextVerse += "<br/>"; } foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); } }
public void VygenerovatCastSql(CastTextu cast, Bible bible, Kniha kniha) { switch (cast.GetType().Name) { case "HlavniCastKnihy": PridatRozpracovanyVers(); goto case "CastKnihy"; case "CastKnihy": VygenerovatCastKnihy(cast, bible, kniha); break; case "UvodKapitoly": PridatRozpracovanyVers(); PocitadloVerse = 1; PocitadloKapitol++; break; case "Vers": PridatRozpracovanyVers(); break; case "Poezie": VygenerovatCastPoezie(cast, bible, kniha); break; case "RadekPoezie": VygenerovatRadekPoezie(cast, bible, kniha); break; case "Odstavec": VygenerovatOdstavec(cast, bible, kniha); break; case "FormatovaniTextu": VygenerovatFormatovaniTextu(cast, bible, kniha); break; case "CastPoezie": AktualniTextVerse += $"<h5>{cast.TextovaData}</h5>\n"; break; case "CastTextuSTextem": AktualniTextVerse += cast.TextovaData; break; case "Kniha": VygenerovatKnihu(cast, bible, kniha); break; } }
private void VygenerovatFormatovaniTextu(CastTextu cast, Bible bible, Kniha kniha) { if ((cast as FormatovaniTextu).Kurziva) { AktualniTextVerse += "<i>"; foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); } AktualniTextVerse += "</i>"; } }
public string VygenerovatSql(Bible bible) { PocitadloNadpisu = 1; for (int poradi = 0; poradi < bible.Knihy.Count; poradi++) { Kniha kniha = bible.Knihy[poradi]; PoradiKnihy = poradi + 1; PocitadloKapitol = 0; PocitadloVerse = 0; AktualniTextVerse = string.Empty; Nadpisy.Clear(); Verse.Clear(); string nadpis = bible.MapovaniZkratekKnih[kniha.Id].Nadpis; string[] nadpisPale = nadpis.Split(';'); StavecKnihy.Append("INSERT INTO bible_knihy (id, kod, nazev, `order`) VALUES " + $"({poradi + 1}, '{nadpisPale[1]}', '{nadpisPale[0]}', {poradi + 1});\n"); VygenerovatSqlProKnihu(bible, kniha); StavecNadpisy.Append(string.Join(string.Empty, Nadpisy)); StavecNadpisy.AppendLine(); StavecVerse.Append("INSERT INTO bible_verse (kniha_id, kapitola, vers, text, stripped, `order`) VALUES \n"); StavecVerse.Append(string.Join(",\n", Verse)); StavecVerse.Append(";"); } string pracovniAdresar = Environment.CurrentDirectory; string sqlSoubor = Path.Combine(pracovniAdresar, $"{bible.Metadata.Nazev}.sql"); Encoding kodovani = new UTF8Encoding(false); File.WriteAllText(sqlSoubor, string.Empty, kodovani); File.AppendAllText(sqlSoubor, StavecKnihy.ToString(), kodovani); File.AppendAllText(sqlSoubor, StavecNadpisy.ToString(), kodovani); File.AppendAllText(sqlSoubor, StavecVerse.ToString(), kodovani); return(sqlSoubor); }
public Bible NacistBibli(string xmlOsisSoubor) { XmlDocument xml = new XmlDocument(); NsManager = VygenerovatNamespaceManager(xml); xml.PreserveWhitespace = false; xml.Load(xmlOsisSoubor); XmlNode osisText = xml.SelectSingleNode("/os:osis/os:osisText", NsManager); Bible bible = new Bible { Revize = new Revize { Datum = DateTime.ParseExact( osisText?.SelectSingleNode("os:header/os:revisionDesc/os:date", NsManager)?.InnerText, "yyyy.M.d", CultureInfo.InvariantCulture), Popis = osisText?.SelectSingleNode("os:header/os:revisionDesc/os:p", NsManager)?.InnerText }, Metadata = new Metadata { Copyright = osisText?.SelectSingleNode("os:header/os:work/os:rights", NsManager)?.InnerText, Isbn = osisText?.SelectSingleNode("os:header/os:work/os:identifier", NsManager)?.InnerText, Nazev = osisText?.SelectSingleNode("os:header/os:work/os:title", NsManager)?.InnerText, Vydavatel = osisText?.SelectSingleNode("os:header/os:work/os:publisher", NsManager)?.InnerText } }; // Provedeme načtení knih. foreach (XmlNode kniha in osisText?.SelectNodes("//os:div[@type='book']", NsManager)) { Kniha k = NacistKnihu(kniha); bible.Knihy.Add(k); } return(bible); }
/// <summary> /// Načtení všech Knih z databáze do objektu typu seznam knih /// </summary> /// <param name="seznam">Vraci seznam BO objektu</param> /// <param name="errMsg">Chybové hlášení, pokud nastala chyba</param> /// <returns>True - načtení proběhlo bez chyby, False - chyba při načítání</returns> public bool LoadAll(out List<Kniha> seznam , out string errMsg) { seznam = new List<Kniha>(); errMsg = string.Empty; var sql = "SELECT Id,AutorJmeno,AutorPrijmeni,NazevKnihy,Vydavatel,RokVydani,Vydani,Jazyk FROM Knihy"; //Nazcteni Knih z uloziste try { DataConnection.Instance.Connect(); try { SqlCommand sqlCmd = DataConnection.Instance.CreateCommand(sql); try { try { var result = DataConnection.Instance.Select(sqlCmd); if (result.HasRows) { while (result.Read()) { Kniha kn = new Kniha() { Id = result.GetInt64(0), AutorJmeno = result.GetString(1), AutorPrijmeni = result.GetString(2), NazevKnihy = result.GetString(3), Vydavatel = result.GetString(4), RokVydani = result.GetInt32(5), Vydani = result.GetInt32(6), Jazyk = result.GetString(7) }; seznam.Add(kn); }; } } catch (Exception e) { //nastala chyba vykonání SELECT errMsg = $"Chyba při SELECT tabulky Knihy \n{e.Message}"; return false; } } finally { sqlCmd.Dispose(); } } finally { DataConnection.Instance.Close(); } } catch (Exception e) { errMsg = $"Chyba při Connection do DB \n{e.Message}"; return false; } return true; }//LoadAll
/// <summary> /// Vrací ID string pro místo, kde je poznámka citovaná ([x]). /// </summary> /// <param name="kniha"></param> /// <param name="pozn"></param> /// <returns></returns> private static string ZiskatIdCitace(Kniha kniha, PouzitaPoznamka pozn) { return($"c-{kniha.Id}-{pozn.Id}"); }
private string VygenerovatCastTextu(CastTextu cast, Kniha kniha, Bible bible, bool dlouheCislaVerse) { if (cast is HlavniCastKnihy) { StringBuilder stavec = new StringBuilder(); stavec.Append($"<h2>{((HlavniCastKnihy) cast).Nadpis}</h2>\n"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is CastKnihy) { StringBuilder stavec = new StringBuilder(); stavec.Append($"<h4>{((CastKnihy) cast).Nadpis}</h4>\n"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is UvodKapitoly) { return($"<h3 id=\"{ZiskatIdKapitoly(((UvodKapitoly) cast).Id)}\">Kapitola {ZiskatKratkeCisloVerse(((UvodKapitoly) cast).Id)}</h3>\n"); } else if (cast is Vers) { StringBuilder stavec = new StringBuilder(); stavec.Append($"<sup>{(dlouheCislaVerse ? ZiskatDlouheCisloVerse(bible, (cast as Vers).Id) : ZiskatKratkeCisloVerse(((Vers) cast).Id))}</sup>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is Poznamka) { StringBuilder stavec = new StringBuilder(); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } int poradiKnihy = bible.Knihy.IndexOf(kniha); if (!PouzitePoznamky.ContainsKey(poradiKnihy)) { PouzitePoznamky.Add(poradiKnihy, new List <PouzitaPoznamka>()); } PouzitaPoznamka poznamka = new PouzitaPoznamka { Text = stavec.ToString(), Id = $"{PouzitePoznamky[poradiKnihy].Count + 1}" }; PouzitePoznamky[poradiKnihy].Add(poznamka); return($"<sup class=\"poznamka\"><a id=\"{ZiskatIdCitace(kniha, poznamka)}\" href=\"{KnihaPoznamky}#{ZiskatIdPoznamky(kniha, poznamka)}\" epub:type=\"noteref\">[{PouzitePoznamky[poradiKnihy].Count}]</a></sup> "); } else if (cast is Poezie) { StringBuilder stavec = new StringBuilder(); stavec.Append("<div class=\"poezie\">"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</div>"); return(stavec.ToString()); } else if (cast is RadekPoezie) { StringBuilder stavec = new StringBuilder("<p>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</p>"); return(stavec.ToString()); } else if (cast is Odstavec) { StringBuilder stavec = new StringBuilder(); stavec.Append("<p>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</p>"); return(stavec.ToString()); } else if (cast is FormatovaniTextu) { StringBuilder stavec = new StringBuilder(); if ((cast as FormatovaniTextu).Kurziva) { stavec.Append("<i>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</i>"); } return(stavec.ToString()); } else if (cast is CastPoezie) { return($"<h5>{cast.TextovaData}</h5>\n"); } else if (cast is CastTextuSTextem) { return(cast.TextovaData); } else { StringBuilder stavec = new StringBuilder(); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } }
public void VygenerovatCastSql(CastTextu cast, Bible bible, Kniha kniha) { if (cast is HlavniCastKnihy || cast is CastKnihy) { if (cast is HlavniCastKnihy) { PridatRozpracovanyVers(); PocitadloVerse = 1; } VlozitSqlNadpis(cast is HlavniCastKnihy knihy ? knihy.Nadpis : ((CastKnihy)cast).Nadpis); foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); } } else if (cast is UvodKapitoly) { PridatRozpracovanyVers(); PocitadloVerse = 1; PocitadloKapitol++; } else if (cast is Vers) { PridatRozpracovanyVers(); } else if (cast is Poezie) { foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); } } else if (cast is RadekPoezie) { foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); } AktualniTextVerse += "<br/>"; } else if (cast is Odstavec) { foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); } } else if (cast is FormatovaniTextu) { if ((cast as FormatovaniTextu).Kurziva) { AktualniTextVerse += "<i>"; foreach (CastTextu potomek in cast.Potomci) { VygenerovatCastSql(potomek, bible, kniha); } AktualniTextVerse += "</i>"; } } else if (cast is CastPoezie) { AktualniTextVerse += $"<h5>{cast.TextovaData}</h5>\n"; } else if (cast is CastTextuSTextem) { AktualniTextVerse += cast.TextovaData; } else if (cast is Kniha) { foreach (CastTextu potomek in cast.Potomci) { PocitadloVerse = 1; VygenerovatCastSql(potomek, bible, kniha); PridatRozpracovanyVers(); } } }
public string VygenerovatKnihu(Kniha kniha, Bible bible, bool dlouheCislaVerse) { return(VygenerovatCastTextu(kniha, kniha, bible, dlouheCislaVerse)); }
private string VygenerovatCastTextu(CastTextu cast, Kniha kniha, Bible bible, bool dlouheCislaVerse) { if (cast is HlavniCastKnihy) { StringBuilder stavec = new StringBuilder(); stavec.Append($"<h2>{(cast as HlavniCastKnihy).Nadpis}</h2>\n"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is CastKnihy) { StringBuilder stavec = new StringBuilder(); stavec.Append($"<h4>{(cast as CastKnihy).Nadpis}</h4>\n"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is UvodKapitoly) { return($"<h3>Kapitola {ZiskatKratkeCisloVerse((cast as UvodKapitoly).Id)}</h3>\n"); } else if (cast is Vers) { StringBuilder stavec = new StringBuilder(); if (dlouheCislaVerse) { stavec.Append($"<sup>{ZiskatDlouheCisloVerse((cast as Vers).Id)}</sup>"); } else { // S tooltipem. string kratkeCislo = ZiskatKratkeCisloVerse((cast as Vers).Id); string dlouheCislo = ZiskatDlouheCisloVerse((cast as Vers).Id); stavec.Append($"<sup><a href=\"#\" data-html=\"true\" data-toggle=\"tooltip\" title=\"{HttpUtility.HtmlEncode(dlouheCislo)}\">{kratkeCislo}</a></sup>"); } foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is Poznamka) { StringBuilder stavec = new StringBuilder(); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } PouzitaPoznamka poznamka = new PouzitaPoznamka { Text = stavec.ToString(), Id = $"pozn-{PouzitePoznamky.Count + 1}" }; PouzitePoznamky.Add(poznamka); return($"<sup class=\"poznamka\"><a href=\"#\" data-html=\"true\" data-toggle=\"tooltip\" title=\"{HttpUtility.HtmlEncode(poznamka.Text)}\">[{PouzitePoznamky.Count}]</a></sup> "); } else if (cast is Poezie) { StringBuilder stavec = new StringBuilder(); stavec.Append("<p class=\"poezie\">"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</p>"); return(stavec.ToString()); } else if (cast is RadekPoezie) { StringBuilder stavec = new StringBuilder(); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("<br/>"); return(stavec.ToString()); } else if (cast is Odstavec) { StringBuilder stavec = new StringBuilder(); stavec.Append("<p>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</p>"); return(stavec.ToString()); } else if (cast is FormatovaniTextu) { StringBuilder stavec = new StringBuilder(); if ((cast as FormatovaniTextu).Kurziva) { stavec.Append("<i>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</i>"); } return(stavec.ToString()); } else if (cast is CastPoezie) { return($"<h5>{cast.TextovaData}</h5>\n"); } else if (cast is CastTextuSTextem) { return(cast.TextovaData); } else { StringBuilder stavec = new StringBuilder(); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } }
private static void Main(string[] args) { //Ukazka prace s TableDataGateway pro Zamestnance - ulozeni do XML souboru int x = SpravaZamestnancu.Instance.CelkovyPocetZamestnancu; Console.WriteLine($"Celkovy pocet zamestnanu v IS: {x}"); //Pokud jich je méně než 5 tak vytvoříme 2 a uložíme if (x < 5) { SpravaZamestnancu.Instance.AddZamestnanec(new Zamestnanec() { Jmeno = "Pepa", Prijmeni = "Novák", TypZamestnance = EnTypZamest.eJuniorKnihovnik, ZamestnanOd = new DateTime(2000, 06, 01) }); SpravaZamestnancu.Instance.AddZamestnanec(new Zamestnanec() { Jmeno = "Igor", Prijmeni = "Hnízdo", TypZamestnance = EnTypZamest.eSpravce, ZamestnanOd = new DateTime(1993, 01, 26) }); SpravaZamestnancu.Instance.SaveAll(); } Console.WriteLine($"Novy pocet zamestnancu v IS {SpravaZamestnancu.Instance.CelkovyPocetZamestnancu}"); //Ukazka prace s TableDataGateway pro Uzivatele IS, prace s SQL serverem int u = SpravaUzivatelu.Instance.CelkovyPocetUzivatelu; Console.WriteLine($"Celkovy pocet Uzivatelu v IS {u}"); //Pokud je méně uživatelů než 5 tak dva nové vytvoříme a uložíme if (u < 5) { SpravaUzivatelu.Instance.AddUzivatel(new Uzivatel() { Jmeno = "Arne", Prijmeni = "Farin", DatumNarozeni = new DateTime(2000,1,10), ClenemOd = new DateTime(2015,6,7), Spolehlivost = EnHodnoceni.eSpolehlivy }); SpravaUzivatelu.Instance.AddUzivatel(new Uzivatel() { Jmeno = "Jules", Prijmeni = "Verne", DatumNarozeni = new DateTime(1900, 7, 1), ClenemOd = new DateTime(1920, 3, 19), Spolehlivost = EnHodnoceni.eSpolehlivy }); SpravaUzivatelu.Instance.AddUzivatel(new Uzivatel() { Jmeno = "Pepe", Prijmeni = "Novotny", DatumNarozeni = new DateTime(1945, 5, 13), ClenemOd = new DateTime(1955, 11, 9), Spolehlivost = EnHodnoceni.eNespolehlivy }); } Console.WriteLine($"Celkovy pocet Uzivatelu v IS {SpravaUzivatelu.Instance.CelkovyPocetUzivatelu}"); //Update prvni ho uzivatele v seznamu var uFirst = SpravaUzivatelu.Instance.Uzivatele.First(); Console.WriteLine($"Prvni uzivatel ({uFirst.Id}) {uFirst.Jmeno} {uFirst.Prijmeni}"); //Zmena uzivatele uFirst.Jmeno = "Pepa"; uFirst.Prijmeni = "Mares"; string err = string.Empty; Uzivatel uziv = null; if (SpravaUzivatelu.Instance.UpdateUzivatel(uFirst, out err)) { if (SpravaUzivatelu.Instance.FindUzivatel(uFirst.Id, out uziv, out err)) { Console.WriteLine($"Prvni uzivatel ({uziv.Id}) upraveno v DB {uziv.Jmeno} {uziv.Prijmeni}"); } else { Console.WriteLine($"Nastala chyba při hledani uživatele {uFirst.Id} v DB\n {err}"); } } else { Console.WriteLine($"Nastala chyba při aktualizaci uživatele v DB\n {err}"); } //Ukazka použití DataMapperuKniha //Vložení dependency - nastavujeme do spravce knih referenci na mapper pomoci interface SpravaKnih.KnihaDataMapper = KnihaMapper.Instance; //Počet knih v IS, v ramci konstruktoru se zavola nacteni vsech knih z uložistě int k = SpravaKnih.Instance.CelkovyPocetKnih; Console.WriteLine($"Celkovy pocet Knih v IS {k}"); //Pokud je méně uživatelů než 5 tak dva nové vytvoříme a uložíme if (k < 5) { SpravaKnih.Instance.AddKniha(new Kniha() { AutorJmeno = "Olgoj", AutorPrijmeni = "Chorchoj", NazevKnihy = "Dune", Vydavatel = "Computer Press", RokVydani = 2020, Vydani = 1, Jazyk = "CZ" }); SpravaKnih.Instance.AddKniha(new Kniha() { AutorJmeno = "Jan", AutorPrijmeni = "Novak", NazevKnihy = "Rozhledna", Vydavatel = "Mlada Fronta", RokVydani = 1976, Vydani = 5, Jazyk = "CZ" }); } Console.WriteLine($"Celkovy pocet Knih v IS {SpravaKnih.Instance.CelkovyPocetKnih}"); //Pokud je méně uživatelů než 5 tak dva nové vytvoříme a uložíme //Upravime v knihach Kniha kn = SpravaKnih.Instance.VyhledejKnihu(3); kn.AutorPrijmeni = "Upraveny Autor"; SpravaKnih.Instance.UpdateKniha(kn); }
public NewListVM() { data = new Model.Kniha(); this.Zpet = new Command(this.Zpet_Execute); this.Vse = new Command(this.Vse_Execute); }
public void VygenerovatSqlProKnihu(Bible bible, Kniha kniha) { VygenerovatCastSql(kniha, bible, kniha); }
private Kniha NacistKnihu(XmlNode xml) { Kniha kniha = new Kniha(); kniha.Id = xml.SelectSingleNode("@osisID").InnerText; // Budeme iterativně zpracovávat seznam XML potomků a přidávát // ekvivalenty. List <CastTextu> rodice = new List <CastTextu> { kniha }; // Tento seznam obashuje seznamy XML prvků, které patří do daného rodiče. List <List <XmlNode> > xmlProRodice = new List <List <XmlNode> > { xml.ChildNodes.OfType <XmlNode>().ToList() }; while (rodice.Count > 0) { CastTextu rodic = rodice[0]; rodice.RemoveAt(0); List <XmlNode> xmlProTohotoRodice = xmlProRodice[0]; xmlProRodice.RemoveAt(0); foreach (XmlNode xmlPotomek in xmlProTohotoRodice) { if (xmlPotomek is XmlElement) { XmlElement xmlPotomekElem = xmlPotomek as XmlElement; if ( xmlPotomek.Name == "div" && xmlPotomekElem.HasAttribute("type") && xmlPotomek.Attributes["type"].InnerText == "majorSection") { // Máme major section. HlavniCastKnihy hlavniCast = new HlavniCastKnihy { Nadpis = xmlPotomek.SelectSingleNode("os:title", NsManager).InnerText }; rodic.PridatPotomka(hlavniCast); rodice.Add(hlavniCast); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else if ( xmlPotomek.Name == "div" && xmlPotomekElem.HasAttribute("type") && xmlPotomek.Attributes["type"].InnerText == "section") { CastKnihy castKnihy = new CastKnihy { Nadpis = xmlPotomek.SelectSingleNode("os:title", NsManager).InnerText.Trim('<', '>', '"') }; rodic.PridatPotomka(castKnihy); rodice.Add(castKnihy); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else if ( xmlPotomek.Name == "div" && xmlPotomekElem.HasAttribute("type") && xmlPotomek.Attributes["type"].InnerText == "preface") { // Předmluva. CastKnihy castKnihy = new CastKnihy { Nadpis = xmlPotomek.SelectSingleNode("os:title", NsManager).InnerText }; rodic.PridatPotomka(castKnihy); rodice.Add(castKnihy); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else if (xmlPotomek.Name == "lg") { // Máme báseň. Poezie poezie = new Poezie(); rodic.PridatPotomka(poezie); rodice.Add(poezie); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else if (xmlPotomek.Name == "p") { // Odstavec složený z veršů, řádků básně či dalšího obsahu. Odstavec odstavec = new Odstavec(); rodic.PridatPotomka(odstavec); rodice.Add(odstavec); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else if (xmlPotomek.Name == "chapter") { if (xmlPotomekElem.HasAttribute("osisID") && xmlPotomekElem.HasAttribute("sID")) { UvodKapitoly uvodKapitoly = new UvodKapitoly { Id = xmlPotomek.SelectSingleNode("@osisID", NsManager).InnerText }; rodic.PridatPotomka(uvodKapitoly); rodice.Add(uvodKapitoly); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else { // Konec kapitoly, zatím se neřeší. } } else if (xmlPotomekElem.Name == "verse") { if (xmlPotomekElem.HasAttribute("osisID")) { Vers vers = new Vers { Id = xmlPotomek.SelectSingleNode("@osisID", NsManager).InnerText }; rodic.PridatPotomka(vers); rodice.Add(vers); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else { // Konec verše, zatím se neřeší. } } else if (xmlPotomek.Name == "l") { RadekPoezie radekPoezie = new RadekPoezie(); rodic.PridatPotomka(radekPoezie); rodice.Add(radekPoezie); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else if (xmlPotomek.Name == "note") { // Poznámka (pod čarou). Poznamka poznamka = new Poznamka(); rodic.PridatPotomka(poznamka); rodice.Add(poznamka); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else if (xmlPotomek.Name == "i") { // Poznámka (pod čarou). FormatovaniTextu formatovaniTextu = new FormatovaniTextu { Kurziva = true }; rodic.PridatPotomka(formatovaniTextu); rodice.Add(formatovaniTextu); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else if (xmlPotomek.Name == "head") { // Poznámka (pod čarou). CastPoezie castPoezie = new CastPoezie(); rodic.PridatPotomka(castPoezie); rodice.Add(castPoezie); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else { } } else if (xmlPotomek is XmlText) { // Máme čistě textový záznam. CastTextuSTextem textovaCast = new CastTextuSTextem { /* * TextovaData = HttpUtility.HtmlEncode(Regex.Replace( * xmlPotomek.Value, * "[\\n\\r ]+$", * " ")) */ TextovaData = Regex.Replace( xmlPotomek.Value, "[\\n\\r ]+$", " ") }; rodic.PridatPotomka(textovaCast); rodice.Add(textovaCast); xmlProRodice.Add(xmlPotomek.ChildNodes.OfType <XmlNode>().ToList()); } else { } } } return(kniha); }
private string ZiskatNazevSouboruKnihy(Kniha kniha) { return($"kniha-{kniha.Id}.html"); }
}//SaveAll /// <summary> /// Vložení nebo aktualizace Knihy v DB /// </summary> ///<param name="kniha">BO Kniha určený pro uložení nebo změnu</param> /// <param name="errMsg">Chybové hlášení pokud nastala chyba</param> /// <returns>True nebyla chyba, False chyba nastala</returns> public bool InsertOrUpdate(Kniha kniha, out string errMsg) { errMsg = string.Empty; string sqlInsert = "SET NOCOUNT ON; INSERT INTO Knihy (AutorJmeno,AutorPrijmeni,NazevKnihy,Vydavatel,RokVydani,Vydani,Jazyk) " + "VALUES (@ajm,@aprij,@nazev,@vydavatel,@rokvyd,@vydani,@jazyk); SELECT SCOPE_IDENTITY(); SET NOCOUNT OFF;"; string sqlUpdate = "UPDATE Knihy SET AutorJmeno = @ajm, AutorPrijmeni = @aprij, NazevKnihy = @nazev, " + "Vydavatel = @vydavatel, RokVydani = @rokvyd, Vydani = @vydani, Jazyk = @jazyk WHERE (Id=@id)"; var sql = kniha.Id < 0 ? sqlInsert : sqlUpdate; //Vlozeni nebo aktualizace uzivatele v ulozisti try { DataConnection.Instance.Connect(); try { DataConnection.Instance.BeginTransaction(); SqlCommand sqlCmd = DataConnection.Instance.CreateCommand(sql); try { sqlCmd.Parameters.AddWithValue("@id", kniha.Id); sqlCmd.Parameters.AddWithValue("@ajm", kniha.AutorJmeno); sqlCmd.Parameters.AddWithValue("@aprij", kniha.AutorPrijmeni); sqlCmd.Parameters.AddWithValue("@nazev", kniha.NazevKnihy); sqlCmd.Parameters.AddWithValue("@vydavatel", kniha.Vydavatel); sqlCmd.Parameters.AddWithValue("@vydani", kniha.Vydani); sqlCmd.Parameters.AddWithValue("@rokvyd", kniha.RokVydani); sqlCmd.Parameters.AddWithValue("@jazyk", kniha.Jazyk); try { var result = -1; if (kniha.Id == -1) { result = DataConnection.Instance.ExecuteScalar(sqlCmd); } else { result = DataConnection.Instance.ExecuteNonQuery(sqlCmd); } //Pokud je návratová hodnota záp**ná nepovedlo se vložit/upravit if (result < 0) throw new DataException($"Nepovedlo se vložit/upravit Knihu ID:({kniha.Id})"); DataConnection.Instance.EndTransaction(); if (kniha.Id < 0) kniha.Id = result; //id vytvořené na DB serveru a přidělené novému záznamu v DB } catch (Exception e) { //nastala chyba vykonání INSERT/UPDATE - vrátíme změny v DB DataConnection.Instance.Rollback(); errMsg = $"Chyba při INSERT/UPDATE objektu Kniha \n{e.Message}"; return false; } } finally { sqlCmd.Dispose(); } } finally { DataConnection.Instance.Close(); } } catch (Exception e) { errMsg = $"Chyba při Connection do DB \n{e.Message}"; return false; } return true; }//InsertOrUpdate