using System; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; /// /// Summary description for ToodeteHaldus /// public class ToodeteHaldus { SqlConnection yhendus = new SqlConnection( ConfigurationManager.ConnectionStrings[ "yhendusTekst"]. ConnectionString); public ToodeteHaldus() { yhendus.Open(); } //~ToodeteHaldus() { // yhendus.Close(); //} private DataTable TootedAndmeTabelina(SqlDataReader lugeja){ DataTable vastus = new DataTable("toodeteandmed"); vastus.Columns.Add("tooteid", typeof(int)); vastus.Columns.Add("nimetus", typeof(string)); vastus.Columns.Add("hind", typeof(double)); while (lugeja.Read()) { DataRow rida = vastus.NewRow(); rida["tooteid"] = lugeja.GetInt32(0); rida["nimetus"] = lugeja.GetString(1); double h = (double)lugeja.GetDecimal(2); rida["hind"] = h; vastus.Rows.Add(rida); } lugeja.Close(); return vastus; } public DataTable ToodeteLoetelu() { SqlCommand cm = new SqlCommand ("SELECT tooteid, nimetus, hind FROM Tooted_vaade", yhendus); SqlDataReader lugeja = cm.ExecuteReader(); return TootedAndmeTabelina(lugeja); } public DataTable NahtavateToodeteLoetelu() { SqlCommand cm = new SqlCommand ("SELECT tooteid, nimetus, hind FROM Tooted_vaade "+ "WHERE nahtav=1", yhendus); SqlDataReader lugeja = cm.ExecuteReader(); return TootedAndmeTabelina(lugeja); } byte[] Pisipildiks(byte[] pilt) { System.Drawing.Image pobj = System.Drawing.Bitmap.FromStream( new System.IO.MemoryStream(pilt)); int pisipildilaius = 150; double koef = pisipildilaius * 1.0 / pobj.Width; System.IO.MemoryStream puhver = new System.IO.MemoryStream(); pobj.GetThumbnailImage(pisipildilaius, (int)(pobj.Height * koef), null, new IntPtr()).Save(puhver, System.Drawing.Imaging.ImageFormat.Gif); return puhver.GetBuffer(); } public void LisaToode(string nimetus, string hind, byte[] pilt) { SqlCommand cm = new SqlCommand( "INSERT INTO Tooted_tbl (nimetus, hind, piltsuur, piltmini) "+ "VALUES (@nimetus, @hind, @piltsuur, @piltmini)", yhendus ); cm.Parameters.AddWithValue("@nimetus", nimetus); double uhind = 0; try { uhind = Convert.ToDouble(hind); } catch (Exception) { String abihind = hind.Replace('.', ','); uhind = Convert.ToDouble(abihind); } cm.Parameters.AddWithValue("@hind", uhind); cm.Parameters.AddWithValue("@piltsuur", pilt); cm.Parameters.AddWithValue("@piltmini", Pisipildiks(pilt)); cm.ExecuteNonQuery(); } public void MuudaToode(Toode asi) { bool KasPilt = (asi.KysiPiltSuur() != null); String SqlPildiLisa = ""; if (KasPilt) { SqlPildiLisa=", PiltSuur=@piltsuur, PiltMini=@piltmini "; } SqlCommand cm = new SqlCommand( "UPDATE Tooted_vaade SET Nimetus=@nimetus, "+ "Kirjeldus=@kirjeldus, Hind=@hind, Nahtav=@nahtav "+ SqlPildiLisa+ "WHERE TooteID=@id",yhendus ); cm.Parameters.AddWithValue("@nimetus", asi.KysiNimetus()); cm.Parameters.AddWithValue("@kirjeldus", asi.KysiKirjeldus()); cm.Parameters.AddWithValue("@hind", asi.KysiHind()); cm.Parameters.AddWithValue("@nahtav", asi.KysiNahtav()); if (KasPilt) { cm.Parameters.AddWithValue("@piltsuur", asi.KysiPiltSuur()); cm.Parameters.AddWithValue("@piltmini", Pisipildiks(asi.KysiPiltSuur())); } cm.Parameters.AddWithValue("@id", asi.KysiTooteID()); cm.ExecuteNonQuery(); } public byte[] KysiPilt(string id, string suurus) { if (!suurus.ToLower().Equals("suur")) { suurus = "mini"; } SqlCommand cm = new SqlCommand( "SELECT Pilt"+suurus+" FROM Tooted_vaade "+ "WHERE TooteID=@id",yhendus ); try { cm.Parameters.AddWithValue("@id", id); return (byte[])cm.ExecuteScalar(); } catch (Exception) { return System.IO.File.ReadAllBytes( "t:/veebistuudium/pood05/piltpuudub.gif"); } } public Toode KysiToode(int id) { SqlCommand cm = new SqlCommand( "SELECT TooteID, Versioon, Nimetus, Hind, "+ "Kirjeldus, Laoseis, PiltSuur, PiltMini, Nahtav "+ "FROM Tooted_vaade WHERE TooteID=@id", yhendus); cm.Parameters.AddWithValue("@id", id); SqlDataReader lugeja = cm.ExecuteReader(); if (lugeja.Read()) { Toode asi= new Toode( lugeja.GetInt32(0), lugeja.GetInt16(1), lugeja.GetString(2), (double)lugeja.GetDecimal(3), lugeja.GetString(4), lugeja.GetInt32(5), null, //Pilt esialgu puudub null, lugeja.GetBoolean(8) ); lugeja.Close(); return asi; /* return new Toode( lugeja.GetInt32(0), lugeja.GetInt16(1), "Proovitoode", 3.4, "Kahtlane", 0, null, null, false );*/ } lugeja.Close(); return null; } /// /// Vastavalt ette antud toote id-le kontrollib, kas /// vanade toodete tabelis on toote praegune versioon /// olemas. Kui pole, siis lisab vastava koopia /// vanade tabelisse. /// /// Vanade toodete tabelist sobiva kirje ID /// public int LeiaVanaToode(int TooteID) { Toode asi = KysiToode(TooteID); int abi = KasVanaToode(asi.KysiTooteID(), asi.KysiVersioon()); if (abi != -1) { return abi; } return LooVanaToode(asi); } /// /// Toodet veel ei leidu vanade toodete tabelis. /// Andmed kopeeritakse sinna. /// /// Kopeeritava toote andmed /// /// Loodud vana toote id /// int LooVanaToode(Toode asi) { SqlCommand cm = new SqlCommand("INSERT INTO VanadTooted_tbl " + "(TooteID, Versioon, Nimetus, Kirjeldus, Hind) " + "VALUES (@TooteID, @Versioon, @Nimetus, " + "@Kirjeldus, @Hind)", yhendus); cm.Parameters.AddWithValue("@TooteID", asi.KysiTooteID()); cm.Parameters.AddWithValue("@Versioon", asi.KysiVersioon()); cm.Parameters.AddWithValue("@Nimetus", asi.KysiNimetus()); cm.Parameters.AddWithValue("@Kirjeldus", asi.KysiKirjeldus()); cm.Parameters.AddWithValue("@Hind", asi.KysiHind()); cm.ExecuteNonQuery(); return KasVanaToode(asi.KysiTooteID(), asi.KysiVersioon()); } /// /// Väljastab vana toote id juhul kui see olemas. /// /// /// /// Leitud vana toote id. /// Või siis -1, kui vana toode puudub /// int KasVanaToode(int TooteID, int Versioon) { SqlCommand cm = new SqlCommand("SELECT VanaToodeID " + "FROM VanadTooted_tbl WHERE TooteID=@TooteID " + "AND Versioon=@Versioon", yhendus); cm.Parameters.AddWithValue("@TooteID", TooteID); cm.Parameters.AddWithValue("@Versioon", Versioon); SqlDataReader lugeja = cm.ExecuteReader(); int vastus = -1; if (lugeja.Read()) { vastus = (int)lugeja.GetInt64(0); } lugeja.Close(); return vastus; } public String ProoviTervitus() { return "Tere"; } }