/// <summary> /// Metoda nacteni uzivatelu, kteri jsou ulozeni na SQL Serveru /// </summary> public void NactiUzivatele() { SqlConnection conn = DatabaseConnection.GetInstance(); using (SqlCommand command = new SqlCommand("SELECT * FROM uzivatel", conn)) { SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Uzivatel uzivatel = new Uzivatel( jmeno: reader[1].ToString(), heslo: reader[2].ToString(), adresa: reader[3].ToString(), telefon: reader[4].ToString(), email: reader[5].ToString()); if (uzivatele.Contains(uzivatel) || uzivatel.Jmeno.Length <= 1) { Console.WriteLine($"Uzivatel se jmenem: {uzivatel.Jmeno} uz existuje, nebo nesmi mit prazdne jmeno"); } else { uzivatele.Add(uzivatel); Console.WriteLine($"Uzivatel: {uzivatel.Jmeno} byl pridan"); } } reader.Close(); } }
/// <summary> /// Metoda pro overeni, zda je uzivatel aktualne v listu /// </summary> /// <param name="uzivatel">Uzivatel u ktereho chceme zjistit zda v listu je</param> /// <returns>Vraci true pokud obsahuje, vraci false pokud neobsahuje</returns> public bool Contains(Uzivatel uzivatel) { if (uzivatele.Contains(uzivatel)) { return(true); } else { return(false); } }
static void Main(string[] args) { DatabazeUzivatelu db = DatabazeUzivatelu.Instance; DrazebniDatabaze test = new DrazebniDatabaze(); try { db.NactiUzivatele(); foreach (var uzivatel in db.uzivatele) { Console.WriteLine(uzivatel); } } catch (Exception e) { Console.WriteLine(e.Message); } Uzivatel u1 = db.GetById(1); Uzivatel u2 = db.GetById(2); Uzivatel u3 = db.GetById(3); Nabidka n1 = new Nabidka(u1, 25); Nabidka n2 = new Nabidka(u1, 15); Nabidka n3 = new Nabidka(u2, 35); Auto bmw = new Auto("bmw", Skupina.A, DateTime.Now, 75, 4); Auto skoda = new Auto("Skoda", Skupina.B, DateTime.Now, 85, 6); Drazba d = new Drazba(bmw, "sdffffffffffwsefwefwef"); d.pridej(n1); d.pridej(n2); d.pridej(n3); Drazba d2 = new Drazba(skoda, "adwaduadhqaudhhudli"); d2.pridej(n1); d2.pridej(n2); d2.pridej(n3); test.PridejDrazbu(d); test.PridejDrazbu(d2); Console.WriteLine(n1.PrihazujiciID()); Console.WriteLine(n3.PrihazujiciID()); Console.WriteLine(test.AktualniDrazba); test.DrazbaSkoncila(); Console.WriteLine(test.AktualniDrazba); test.DrazbaSkoncila(); }
/// <summary> /// Metoda na aktualizaci uzivatele na serveru /// </summary> /// <param name="uzivatel">Uzivatel ktereho chceme aktualizovat</param> public void Update(Uzivatel uzivatel) { SqlConnection conn = DatabaseConnection.GetInstance(); SqlCommand command = null; using (command = new SqlCommand("UPDATE uzivatel SET jmeno=@jmeno,heslo=@heslo,adresa=@adresa,telefon=@telefon,email=@email where id = @id", conn)) { command.Parameters.Add(new SqlParameter("@id", uzivatel.Id)); command.Parameters.Add(new SqlParameter("@jmeno", uzivatel.Jmeno)); command.Parameters.Add(new SqlParameter("@heslo", uzivatel.Heslo)); command.Parameters.Add(new SqlParameter("@adresa", uzivatel.Adresa)); command.Parameters.Add(new SqlParameter("@telefon", uzivatel.Telefon)); command.Parameters.Add(new SqlParameter("@email", uzivatel.Email)); command.ExecuteNonQuery(); } }
/// <summary> /// Metoda vraci id zadaneho uzivatele ze serveru /// </summary> /// <param name="u">Uzivatel ktereho id hledame</param> /// <returns>Nalezene id</returns> public int UzivatelID(Uzivatel u) { SqlConnection conn = DatabaseConnection.GetInstance(); int id = 0; using (SqlCommand command = new SqlCommand("SELECT * FROM uzivatel where jmeno=@jmeno", conn)) { command.Parameters.Add(new SqlParameter("@jmeno", u.Jmeno)); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { id = Int32.Parse(reader[0].ToString()); } reader.Close(); } return(id); }
/// <summary> /// Metoda na vytvoreni uzivatele na serveru /// </summary> /// <param name="uzivatel">Uzivatel ktereho na serveru chceme vytvorit</param> public void Create(Uzivatel uzivatel) { SqlConnection conn = DatabaseConnection.GetInstance(); SqlCommand command = null; using (command = new SqlCommand("INSERT INTO uzivatel(jmeno,heslo,adresa,telefon,email) VALUES (@jmeno,@heslo,@adresa,@telefon,@email)", conn)) { command.Parameters.Add(new SqlParameter("@jmeno", uzivatel.Jmeno)); command.Parameters.Add(new SqlParameter("@heslo", uzivatel.Heslo)); command.Parameters.Add(new SqlParameter("@adresa", uzivatel.Adresa)); command.Parameters.Add(new SqlParameter("@telefon", uzivatel.Telefon)); command.Parameters.Add(new SqlParameter("@email", uzivatel.Email)); command.ExecuteNonQuery(); command.CommandText = "Select @@Identity"; uzivatel.Id = Convert.ToInt32(command.ExecuteScalar()); } }
/// <summary> /// Pridava uzivatele do listu uzivatelu ve tride, zaroven ulozi uzivatele na SQL Server /// </summary> /// <param name="novyUzivatel">Instance pridavaneho uzivatele</param> public void AddUzivatel(Uzivatel novyUzivatel) { try { if (uzivatele.Contains(novyUzivatel) || novyUzivatel.Jmeno.Length <= 1) { Console.WriteLine($"Uzivatel se jmenem: {novyUzivatel.Jmeno} uz existuje, nebo nesmi mit prazdne jmeno"); } else { uzivatele.Add(novyUzivatel); this.Save(novyUzivatel); Console.WriteLine($"Uzivatel: {novyUzivatel.Jmeno} byl pridan"); } } catch (Exception err) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Jmeno uzivatele nesmi byt null"); Console.ResetColor(); } }
/// <summary> /// Metoda vyuziva tridu UzivatelDAO a jeji metodu Create /// Slouzi k vytvoreni uzivatele na Server, do cache se nic nepridava /// </summary> /// <param name="u">Uzivatel ktereho pridame do db</param> public void Create(Uzivatel u) { dao.Create(u); }
/// <summary> /// Metoda vyuziva tridu UzivatelDAO a jeji metodu Update /// Aktualizuje uzivatele a smaze jeho zaznam z cache, protoze neni aktualni /// </summary> /// <param name="u">Uzivatel ktereho chceme aktualizovat</param> public void Update(Uzivatel u) { uzivatele.Remove(u.Id); dao.Update(u); }
/// <summary> /// Metoda na aktualizaci uzivatele, vyuziva tridu proxy /// </summary> /// <param name="uzivatel">Uzivatel ktereho chceme na serveru aktualizovat</param> public void Update(Uzivatel uzivatel) { proxy.Update(uzivatel); }
/// <summary> /// Metoda na ulozeni uzivatele na SQL Server, vyuziva tridu proxy /// </summary> /// <param name="uzivatel"></param> public void Save(Uzivatel uzivatel) { proxy.Create(uzivatel); }