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";
}
}