using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;
using System.IO;
using Subgurim.Controles;
public partial class produto : System.Web.UI.Page
{
BD.Produto bdP = new BD.Produto();
string teste;
string teste1;
string teste2;
string teste3;
DataTable dt = new DataTable();
PagedDataSource pds = new PagedDataSource();
//PagedDataSource pds1 = new PagedDataSource();
protected void Page_Load(object sender, EventArgs e)
{
if (FUo.IsPosting)
this.managePostO();
if (FUp.IsPosting)
this.managePostP();
if (FUi.IsPosting)
this.managePostI();
if (FUc.IsPosting)
this.managePostC();
actualizaCons();
actualizaImp();
actualizaComp();
actualizaOut();
if (!IsPostBack)
{
Session["id"] = "-1";
Session["idImp"] = "-1";
Session["idComp"] = "-1";
Session["idOut"] = "-1";
BD.Marca bdM = new BD.Marca();
DataTable dt = bdM.marcaLista();
marcaDDL.DataSource = dt;
marcaDDL.DataValueField = "MARCA_ID";
marcaDDL.DataTextField = "MARCA_NOME";
marcaDDL.DataBind();
ScriptManager1.RegisterPostBackControl(insereBT);
marcaDDLi.DataSource = dt;
marcaDDLi.DataValueField = "MARCA_ID";
marcaDDLi.DataTextField = "MARCA_NOME";
marcaDDLi.DataBind();
ScriptManager1.RegisterPostBackControl(inserirBTi);
marcaDDLp.DataSource = dt;
marcaDDLp.DataValueField = "MARCA_ID";
marcaDDLp.DataTextField = "MARCA_NOME";
marcaDDLp.DataBind();
ScriptManager1.RegisterPostBackControl(inserirBTp);
marcaDDLo.DataSource = dt;
marcaDDLo.DataValueField = "MARCA_ID";
marcaDDLo.DataTextField = "MARCA_NOME";
marcaDDLo.DataBind();
ScriptManager1.RegisterPostBackControl(inserirBTo);
}
}
//Consumiveis
public void actualizaCons()
{
dt = bdP.consumiveisLista();
pds.DataSource = dt.DefaultView;
pds.AllowPaging = true;
pds.PageSize = 5;
int contpag = pds.PageCount;
if (contpag > 1)
{
rep_paginacao1.Visible = true;
DataTable pages = new DataTable();
pages.Columns.Add("pagina", typeof(string));
for (int i = 1; i < (contpag - 1); i++)
{
pages.Rows.Add((i + 1).ToString());
}
rep_paginacao1.DataSource = pages;
rep_paginacao1.DataBind();
}
else
{
rep_paginacao1.Visible = false;
}
pds.CurrentPageIndex = Int32.Parse(currentpage.InnerText.Trim());
totalpagecount.InnerHtml = contpag.ToString();
consumiveis.DataSource = pds;
consumiveis.DataBind();
}
protected void insereBT_Click(object sender, EventArgs e)
{
bdP = new BD.Produto();
Session["id"] = consL.Text;
if (Session["id"].ToString() == "Label")
{
if (FUc.historial.Count > 0)
{
string url = FUc.historial[0].FileName_Path.ToString();
teste = FUc.historial[0].FileName.ToString();
criarthumbnailsCons(teste);
string[] files = Directory.GetFiles(Server.MapPath(@"Imagens_Prod/consumivel/"));
foreach (string file in files)
File.Delete(file);
Response.Redirect("produto.aspx");
}
preencheCon(-1);
Response.Redirect(Request.RawUrl);
}
else
{
if ((bdP.consumiveisEdita(Session["id"].ToString(), refeTB.Text, nomeTB.Text, marcaDDL.SelectedItem.ToString(), tipoDDL.SelectedItem.ToString(), generoDDL.SelectedItem.ToString(), caracteristicaTB.Text, desTB.Text, precoTB.Text, prodRB1.Checked.ToString())) && (bdP.produtoEdita(Session["id"].ToString(), refeTB.Text, nomeTB.Text, precoTB.Text)))
{
refeTB.Text = "";
nomeTB.Text = "";
caracteristicaTB.Text = "";
desTB.Text = "";
precoTB.Text = "";
consL.Text = "Label";
insereBT.Text = "Inserir";
}
consL.Text = "Label";
}
FUc.Visible = true;
actualizaCons();
preencheCon(-1);
}
public void criarthumbnailsCons(string filename)
{
// Inicializar objetos
System.Drawing.Image objThumbnail, postedfile;
String strServerPath, strFilename;
int shtWidth, shtHeight;
// Atribuir a pasta para os thumbnails
strServerPath = Server.MapPath("Imagens_Prod/consumivel/");
// Recolher o nome do ficheiro
strFilename = strServerPath + teste;
// Recolher o ficheiro, se não der, da erro
try
{
postedfile = System.Drawing.Image.FromFile(Server.MapPath("Imagens_Prod/consumivel/" + teste));
}
catch
{
postedfile = System.Drawing.Image.FromFile(Server.MapPath("Imagens/progress_bar.gif"));
}
//Ver qual é o maior, a largura ou altura
if (postedfile.Width > postedfile.Height)
{
// Calcular uma altura proporcional a partir da largura
shtWidth = 130;
shtHeight = (Int16)((Double)postedfile.Height / ((Double)postedfile.Width / (Double)shtWidth));
}
else
{
shtHeight = 70;
shtWidth = (Int16)((Double)postedfile.Width / ((Double)postedfile.Height / (Double)shtHeight));
}
// Criar thumbnail
objThumbnail = postedfile.GetThumbnailImage(shtWidth, shtHeight, null, System.IntPtr.Zero);
//Salvar os dados na base de dados
string urlName = "Imagens_Prod_thum/consumivel/" + teste;
if ((bdP.produtoInsere(refeTB.Text, nomeTB.Text, precoTB.Text) == 0) && (bdP.consumiveisInsere(refeTB.Text, nomeTB.Text, marcaDDL.SelectedItem.ToString(), tipoDDL.SelectedItem.ToString(), generoDDL.SelectedItem.ToString(), caracteristicaTB.Text, desTB.Text, precoTB.Text, urlName, prodRB1.Checked.ToString()) == 0))
{
}
// Guardar o thumbnail no servidor
objThumbnail.Save(Server.MapPath("Imagens_Prod_thum/consumivel/" + teste));
//File.Delete(Server.MapPath("Imagens_Marca/" + teste));
// Limpar a tralha
postedfile.Dispose();
objThumbnail.Dispose();
}
protected void consumiveis_ItemCommand(object source, RepeaterCommandEventArgs e)
{
string id = ((HtmlGenericControl)e.Item.FindControl("consumiveis_id")).InnerHtml;
string caminho = ((HtmlGenericControl)e.Item.FindControl("consumiveis_img")).InnerHtml;
if (e.CommandName.ToString() == "Apagarc")
{
File.Delete(Server.MapPath(caminho));
bdP.consumiveisApaga(Int32.Parse(id));
bdP.produtoApaga(Int32.Parse(id));
actualizaCons();
}
if (e.CommandName.ToString() == "Editarc")
{
FUc.Visible=false;
FUc.Enabled = false;
preencheCon(Int32.Parse(id));
}
}
public void managePostC()
{
HttpPostedFileAJAX pf = FUc.PostedFile;
if ((pf.Type == HttpPostedFileAJAX.fileType.image) && pf.ContentLength <= 3100000)
{
FUc.SaveAs("Imagens_Prod/consumivel/" + pf.FileName);
}
FUc.text_Add = "Adicionar imagem";
FUc.text_Delete = "Eliminar imagem";
FUc.text_Uploading = "Carregando imagem";
FUc.text_X = "Ocultar";
}
public void preencheCon(int id)
{
if (id.ToString() == "Label")
{
refeTB.Text = "";
nomeTB.Text = "";
caracteristicaTB.Text = "";
desTB.Text = "";
precoTB.Text = "";
consL.Text = "Label";
insereBT.Text = "Inserir";
}
else
{
dt = bdP.consumiveisSelect(id);
if (dt.Rows.Count > 0)
{
refeTB.Text = dt.Rows[0].ItemArray[dt.Columns["consumiveis_ref"].Ordinal].ToString();
nomeTB.Text = dt.Rows[0].ItemArray[dt.Columns["consumiveis_nome"].Ordinal].ToString();
caracteristicaTB.Text = dt.Rows[0].ItemArray[dt.Columns["consumiveis_caracteristica"].Ordinal].ToString();
desTB.Text = dt.Rows[0].ItemArray[dt.Columns["consumiveis_descricao"].Ordinal].ToString();
precoTB.Text = dt.Rows[0].ItemArray[dt.Columns["consumiveis_preco"].Ordinal].ToString();
consL.Text = id.ToString();
insereBT.Text = "Actualizar";
}
}
}
protected void rep_paginacao_ItemDataBound1(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
if (drv != null)
{
LinkButton lbpagina = (LinkButton)e.Item.FindControl("lbpagina");
HtmlGenericControl spanpagina = (HtmlGenericControl)e.Item.FindControl("spanpagina");
if ((Int32.Parse(spanpagina.InnerText.Trim()) - 1).ToString() == currentpage.InnerText.Trim())
{
lbpagina.Enabled = false;
lbpagina.Style.Add(HtmlTextWriterStyle.Color, "Black");
lbpagina.Style.Add(HtmlTextWriterStyle.FontWeight, "Bold");
}
}
}
if (e.Item.ItemType == ListItemType.Header && currentpage.InnerText.Trim() == "0")
{
LinkButton lbprimeira = (LinkButton)e.Item.FindControl("lbprimeira");
lbprimeira.Style.Add(HtmlTextWriterStyle.Color, "Black");
lbprimeira.Style.Add(HtmlTextWriterStyle.FontWeight, "Bold");
}
if (e.Item.ItemType == ListItemType.Footer && currentpage.InnerText.Trim() == (pds.PageCount - 1).ToString())
{
LinkButton lbultima = (LinkButton)e.Item.FindControl("lbultima");
lbultima.Style.Add(HtmlTextWriterStyle.Color, "Black");
lbultima.Style.Add(HtmlTextWriterStyle.FontWeight, "Bold");
}
}
protected void rep_paginacao_ItemCommand1(object source, RepeaterCommandEventArgs e)
{
switch (e.CommandName)
{
case "pagina":
currentpage.InnerHtml = ((e.Item.ItemIndex) + 1).ToString();
break;
case "primeira":
currentpage.InnerHtml = "0";
break;
case "ultima":
currentpage.InnerHtml = (Int16.Parse(totalpagecount.InnerText.Trim()) - 1).ToString();
break;
default:
break;
}
actualizaCons();
}