Esempio n. 1
0
    protected void InserirProdutonaLista(int id, int idv, int unidades)
    {
        Autenticate();
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString);

        con.Open();
        string     nome                = "";
        string     marca               = "";
        string     quantidade          = "";
        float      precoporunidade     = 0;
        String     GetAtributos        = "select ProdutosMarcas.Marca, Quantidade, Preco from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas where Id_Produtos=@Id_Produtos";
        SqlCommand comandoGetAtributos = new SqlCommand(GetAtributos, con);

        comandoGetAtributos.Parameters.AddWithValue("@Id_Produtos", id);
        SqlDataReader        dr = comandoGetAtributos.ExecuteReader();
        ItemdoCarrodeCompras item;

        while (dr.Read())
        {
            marca           = dr["Marca"].ToString();
            quantidade      = dr["Quantidade"].ToString();
            precoporunidade = float.Parse(dr["Preco"].ToString());
        }
        dr.Close();
        String     GetPromocao        = "select PrecoemDesconto from ProdutosPromocoes where FKId_Produtos=@FKId_Produtos and DatadeInicio <= GETDATE() and DatadeFim >= GETDATE()";
        SqlCommand comandoGetPromocao = new SqlCommand(GetPromocao, con);

        comandoGetPromocao.Parameters.AddWithValue("@FKId_Produtos", id);
        SqlDataReader dr2 = comandoGetPromocao.ExecuteReader();

        while (dr2.Read())
        {
            precoporunidade = float.Parse(dr2["PrecoemDesconto"].ToString());
        }
        dr2.Close();
        String     GetAtributo        = "select Variedade from ProdutosVariedades where Id_ProdutosVariedades=@Id_ProdutosVariedades";
        SqlCommand comandoGetAtributo = new SqlCommand(GetAtributo, con);

        comandoGetAtributo.Parameters.AddWithValue("@Id_ProdutosVariedades", idv);
        SqlDataReader dr3 = comandoGetAtributo.ExecuteReader();

        while (dr3.Read())
        {
            nome = dr3["Variedade"].ToString();
        }
        dr3.Close();
        if (Session["ListadeCompras"] == null)
        {
            Session["ListadeCompras"] = new ListadeItensdoCarrodeCompras();
        }
        ListadeItensdoCarrodeCompras lista = (ListadeItensdoCarrodeCompras)Session["ListadeCompras"];

        item = new ItemdoCarrodeCompras(id, idv, nome, marca, quantidade, precoporunidade, unidades);
        lista.additem(item);
        lista.updateunidadestotaisdalista();
        lista.updateprecototaldalista();
        Session["ListadeCompras"] = lista;
        UpdateListadeCompras();
        UDivVariedades.Visible = false;
    }
    //adicionar
    public void additem(ItemdoCarrodeCompras item)
    {
        bool itsanewitem = true;

        foreach (ItemdoCarrodeCompras itemnalista in ListadeCompras)
        {
            if (itemnalista.getid() == item.getid() && itemnalista.getidv() == item.getidv())
            {
                itsanewitem = false;
                itemnalista.setunidades(itemnalista.getunidades() + item.getunidades());
            }
        }
        if (itsanewitem == true)
        {
            this.ListadeCompras.Add(item);
        }
        updateunidadestotaisdalista();
        updateprecototaldalista();
    }
 //apagar
 public void deleteitem(ItemdoCarrodeCompras item)
 {
     ListadeCompras.Remove(item);
 }
Esempio n. 4
0
    protected void ButtonEntrar_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString);

        con.Open();
        String     VerificarLogin        = "******";
        SqlCommand comandoVerificarLogin = new SqlCommand(VerificarLogin, con);

        comandoVerificarLogin.Parameters.AddWithValue("@Email", TextBoxEmail.Text);
        SqlDataReader dr         = comandoVerificarLogin.ExecuteReader();
        int           Count      = 0;
        int           Id_Contas  = 0;
        bool          Confirmada = false;

        while (dr.Read())
        {
            Count      = Int32.Parse(dr["Count"].ToString());
            Id_Contas  = Int32.Parse(dr["Id_Contas"].ToString());
            Confirmada = bool.Parse(dr["Confirmada"].ToString());
        }
        dr.Close();
        bool canlogin = true;

        if (Session["PasswordsErradas"] != null)
        {
            if (Int32.Parse(Session["PasswordsErradas"].ToString()) >= 3)
            {
                canlogin = Validate();
            }
        }
        if (canlogin == false)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('O captcha está errado.');", true);
        }
        //Se o utilizador for obrigado a preencher o captcha, e se o tiver preenchido corretamente
        if (canlogin)
        {
            //Se o email inserido estiver associado a uma conta
            if (Count == 0)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Este Email não existe.');", true);
            }
            else
            {
                //Se a conta estiver confirmada
                if (Confirmada == false)
                {
                    Session["EmailporConfirmar"] = TextBoxEmail.Text;
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", " alert('Esta conta ainda não foi confirmada. Verifique o seu e-mail, enviámos-lhe uma mensagem sobre como confirmar a sua conta. Caso necessário, peça o reenvio do e-mail de confirmação.'); window.location.href = 'RecuperarConta.aspx';", true);
                }
                else
                {
                    String     ProcurarEstadodeBloqueio        = "SELECT COUNT(*) FROM ContasBloqueios WHERE FKId_Contas=@FKId_Contas and Estado=1";
                    SqlCommand comandoProcurarEstadodeBloqueio = new SqlCommand(ProcurarEstadodeBloqueio, con);
                    comandoProcurarEstadodeBloqueio.Parameters.AddWithValue("@FKId_Contas", Id_Contas);
                    int Bloqueada = 0;
                    if (comandoProcurarEstadodeBloqueio.ExecuteScalar() != null)
                    {
                        Bloqueada = Int32.Parse(comandoProcurarEstadodeBloqueio.ExecuteScalar().ToString());
                    }
                    //Se a conta não estiver bloqueada
                    if (Bloqueada == 1)
                    {
                        //Inserir a tentativa de login
                        String     InserirTentativadeLogin        = "******";
                        SqlCommand comandoInserirTentativadeLogin = new SqlCommand(InserirTentativadeLogin, con);
                        comandoInserirTentativadeLogin.Parameters.AddWithValue("@FKId_Contas", Id_Contas);
                        comandoInserirTentativadeLogin.ExecuteNonQuery();
                        ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Esta conta foi bloqueada devido a demasiadas tentativas de login seguidas e sem sucesso. Verifique o seu e-mail, enviámos-lhe um e-mail para poder desbloquear a sua conta.');", true);
                    }
                    else
                    {
                        String     Autenticar        = "SELECT COUNT(*) FROM Contas WHERE Email=@Email and Palavrapasse=@Palavrapasse";
                        SqlCommand comandoAutenticar = new SqlCommand(Autenticar, con);
                        comandoAutenticar.Parameters.AddWithValue("@Email", TextBoxEmail.Text);
                        comandoAutenticar.Parameters.AddWithValue("@Palavrapasse", TextBoxPassword.Text);
                        int temp2 = Convert.ToInt32(comandoAutenticar.ExecuteScalar());
                        //Se a palavra-passe inserida estiver correta
                        if (temp2 == 1)
                        {
                            //Inserir a tentativa de login
                            String     InserirTentativadeLogin        = "******";
                            SqlCommand comandoInserirTentativadeLogin = new SqlCommand(InserirTentativadeLogin, con);
                            comandoInserirTentativadeLogin.Parameters.AddWithValue("@FKId_Contas", Id_Contas);
                            comandoInserirTentativadeLogin.ExecuteNonQuery();
                            //Criar as sessões de utilizador
                            String     ProcurarNomeporId        = "SELECT Nome FROM Contas WHERE Id_Contas=@Id_Contas";
                            SqlCommand comandoProcurarNomeporId = new SqlCommand(ProcurarNomeporId, con);
                            comandoProcurarNomeporId.Parameters.AddWithValue("@Id_Contas", Id_Contas);
                            string Nome = comandoProcurarNomeporId.ExecuteScalar().ToString();
                            Session["Utilizador"]                    = null;
                            Session["Nome_Utilizador"]               = null;
                            Session["Email_Utilizador"]              = null;
                            Session["ListadeCompras"]                = null;
                            Session["EmailporConfirmar"]             = null;
                            Session["EmailporConfirmarFalhanoEnvio"] = null;
                            Session["SenhaporMudar"]                 = null;
                            Session["Utilizador"]                    = Id_Contas;
                            Session["Nome_Utilizador"]               = Nome;
                            Session["Email_Utilizador"]              = TextBoxEmail.Text;
                            //Se o utilizador tiver qualquer lista de compras guardada, o servidor irá criar a sua sessão de compras
                            //Obter a lista de compras atual
                            String     ProcurarListadeCompras        = "SELECT Id_ListasdeCompras FROM ListasdeCompras WHERE FKId_Contas=@FKId_Contas and Estado='guardada'";
                            SqlCommand comandoProcurarListadeCompras = new SqlCommand(ProcurarListadeCompras, con);
                            comandoProcurarListadeCompras.Parameters.AddWithValue("@FKId_Contas", Id_Contas);
                            int IdListasdeCompras;
                            if (comandoProcurarListadeCompras.ExecuteScalar() == null)
                            {
                                IdListasdeCompras = 0;
                            }
                            else
                            {
                                IdListasdeCompras = Int32.Parse(comandoProcurarListadeCompras.ExecuteScalar().ToString());
                            }
                            if (IdListasdeCompras > 0)
                            {
                                //Obter o Id de todos os artigos nessa lista de compras
                                String     ProcurarArtigosnaListadeCompras        = "SELECT FKId_ProdutosVariedades FROM ListasdeComprasEntradas WHERE FKId_ListasdeCompras=@FKId_ListasdeCompras";
                                SqlCommand comandoProcurarArtigosnaListadeCompras = new SqlCommand(ProcurarArtigosnaListadeCompras, con);
                                comandoProcurarArtigosnaListadeCompras.Parameters.AddWithValue("@FKId_ListasdeCompras", IdListasdeCompras);
                                List <int>    IdArtigosnaListadeCompras = new List <int>();
                                SqlDataReader dr3 = comandoProcurarArtigosnaListadeCompras.ExecuteReader();
                                while (dr3.Read())
                                {
                                    IdArtigosnaListadeCompras.Add(Int32.Parse(dr3["FKId_ProdutosVariedades"].ToString()));
                                }
                                dr3.Close();
                                ListadeItensdoCarrodeCompras lista = new ListadeItensdoCarrodeCompras();
                                for (int i = 0; i < IdArtigosnaListadeCompras.Count; i++)
                                {
                                    //Através do Id, obter a informação dos artigos e carregá-la para a variável de sessão
                                    String     ProcurarAtributosdoArtigo        = "SELECT * FROM ListasdeComprasEntradas left join ProdutosVariedades on ListasdeComprasEntradas.FKId_ProdutosVariedades = ProdutosVariedades.Id_ProdutosVariedades left join Produtos on ProdutosVariedades.FKId_Produtos = Produtos.Id_Produtos where ListasdeComprasEntradas.FKId_ProdutosVariedades=@FKId_ProdutosVariedades";
                                    SqlCommand comandoProcurarAtributosdoArtigo = new SqlCommand(ProcurarAtributosdoArtigo, con);
                                    comandoProcurarAtributosdoArtigo.Parameters.AddWithValue("@FKId_ProdutosVariedades", IdArtigosnaListadeCompras[i]);
                                    SqlDataReader dr4 = comandoProcurarAtributosdoArtigo.ExecuteReader();
                                    while (dr4.Read())
                                    {
                                        ItemdoCarrodeCompras item = new ItemdoCarrodeCompras(Int32.Parse(dr4["Id_Produtos"].ToString()), Int32.Parse(dr4["Id_ProdutosVariedades"].ToString()), dr4["Nome"].ToString(), dr4["Marca"].ToString(), dr4["Quantidade"].ToString(), float.Parse(dr4["PrecoTotal"].ToString()), Int32.Parse(dr4["Unidades"].ToString()));
                                        lista.additem(item);
                                    }
                                    dr4.Close();
                                }
                                Session["ListadeCompras"] = lista;
                            }
                            Response.Redirect("Produtos.aspx");
                        }
                        //Se a palavra-passe estiver errada
                        else
                        {
                            if (Session["PasswordsErradas"] == null)
                            {
                                Session["PasswordsErradas"] = 1;
                            }
                            else
                            {
                                Session["PasswordsErradas"] = Int32.Parse(Session["PasswordsErradas"].ToString()) + 1;
                            }
                            //Inserir a tentativa de login
                            String     InserirTentativadeLogin        = "******";
                            SqlCommand comandoInserirTentativadeLogin = new SqlCommand(InserirTentativadeLogin, con);
                            comandoInserirTentativadeLogin.Parameters.AddWithValue("@FKId_Contas", Id_Contas);
                            comandoInserirTentativadeLogin.ExecuteNonQuery();
                            ///Ver as 10 últimas tentativas de login desta conta, nas últimas 24 horas
                            String     ProcurarTentativadeLogin        = "******";
                            SqlCommand comandoProcurarTentativadeLogin = new SqlCommand(ProcurarTentativadeLogin, con);
                            comandoProcurarTentativadeLogin.Parameters.AddWithValue("@Email", TextBoxEmail.Text);
                            DateTime DatadeValidadedaContagem = DateTime.Now.AddDays(-1);
                            comandoProcurarTentativadeLogin.Parameters.AddWithValue("@Data", DatadeValidadedaContagem);
                            SqlDataReader dr3 = comandoProcurarTentativadeLogin.ExecuteReader();
                            int           numerodetentativassemsucesso = 0;
                            while (dr3.Read())
                            {
                                if (Int16.Parse(dr3["Autenticado"].ToString()) != 1)
                                {
                                    numerodetentativassemsucesso++;
                                }
                                else
                                {
                                    numerodetentativassemsucesso -= 10;
                                }
                            }
                            dr3.Close();
                            //Se a conta tiver sido vítima de 10 tentativas de login erradas, seguidas e num período de 24 horas, bloqueá-la
                            if (numerodetentativassemsucesso == 10)
                            {
                                //Inserir o bloqueamento da conta na base de dados
                                String     InserirBloqueio        = "INSERT INTO ContasBloqueios (FKId_Contas, Data, Estado) VALUES (@Id_Contas, @Data, @Estado)";
                                SqlCommand comandoInserirBloqueio = new SqlCommand(InserirBloqueio, con);
                                comandoInserirBloqueio.Parameters.AddWithValue("@Id_Contas", Id_Contas);
                                comandoInserirBloqueio.Parameters.AddWithValue("@Data", DateTime.Now);
                                comandoInserirBloqueio.Parameters.AddWithValue("@Estado", 1);
                                comandoInserirBloqueio.ExecuteNonQuery();
                                //Inserir o código associado ao bloqueio na base de dados, confirmando que este não se repete com qualquer outro código existente
                                GeradordeCodigos Gerador             = new GeradordeCodigos();
                                string           CodigodeConfirmacao = "";
                                int CodigosEncontrados = 1;
                                do
                                {
                                    CodigodeConfirmacao = Gerador.GerarCodigo(50);
                                    String     ProcurarporCodigodeConfirmacao        = "SELECT COUNT(*) FROM ContasCodigosdeConfirmacao WHERE CodigodeConfirmacao=@CodigodeConfirmacao";
                                    SqlCommand comandoProcurarporCodigodeConfirmacao = new SqlCommand(ProcurarporCodigodeConfirmacao, con);
                                    comandoProcurarporCodigodeConfirmacao.Parameters.AddWithValue("@CodigodeConfirmacao", CodigodeConfirmacao);
                                    CodigosEncontrados = Convert.ToInt32(comandoProcurarporCodigodeConfirmacao.ExecuteScalar());
                                } while (CodigosEncontrados != 0);
                                try
                                {
                                    //Enviar o código para o e-email associado à conta bloqueada
                                    SmtpClient smtpClient = new SmtpClient("smtp-mail.outlook.com", 25);
                                    smtpClient.EnableSsl             = true;
                                    smtpClient.Port                  = 587;
                                    smtpClient.DeliveryMethod        = SmtpDeliveryMethod.Network;
                                    smtpClient.UseDefaultCredentials = false;
                                    smtpClient.Credentials           = new NetworkCredential("*****@*****.**", "abc123IO");
                                    smtpClient.DeliveryMethod        = SmtpDeliveryMethod.Network;
                                    MailMessage mail = new MailMessage("*****@*****.**", "*****@*****.**");
                                    mail.Subject = "A sua conta foi bloqueada.";
                                    Uri uri = new Uri("http://*****:*****@FKId_Contas,@CodigodeConfirmacao, 1, 'false', GETDATE())";
                                    SqlCommand comandoInserirCodigodeConfirmacao = new SqlCommand(InserirCodigodeConfirmacao, con);
                                    comandoInserirCodigodeConfirmacao.Parameters.AddWithValue("@FKId_Contas", Id_Contas);
                                    comandoInserirCodigodeConfirmacao.Parameters.AddWithValue("@CodigodeConfirmacao", CodigodeConfirmacao);
                                    comandoInserirCodigodeConfirmacao.ExecuteNonQuery();
                                    ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Esta conta foi bloqueada devido a demasiadas tentativas de login seguidas e sem sucesso. Enviámos-lhe um e-mail para poder desbloquear a sua conta.');", true);
                                }
                                catch
                                {
                                    //Quando a conta de e-mail [email protected] é bloqueada por suspeitas de spam, o programa entra no catch. É um problema básico em que me basta fazer login e confirmar a minha identidade
                                    //por telemóvel.
                                    ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Esta conta foi bloqueada devido a demasiadas tentativas de login seguidas e sem sucesso. Por outro lado não foi possível enviar-lhe um e-mail para poder desbloquear a sua conta, iremos enviar-lhe assim que possível. Pedimos desculpas pelo incómodo.');", true);
                                }
                            }
                            else
                            {
                                ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('A palavra-passe está errada.');", true);
                            }
                        }
                    }
                }
            }
        }
    }
Esempio n. 5
0
    //Funções de inserção do produto
    protected void InserirProdutonaLista(int id, int unidades)
    {
        Autenticate();
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString);

        con.Open();
        //Verificar que o produto existe
        String     ProcurarProduto        = "select count(*) from Produtos where Id_Produtos=@Id_Produtos";
        SqlCommand comandoProcurarProduto = new SqlCommand(ProcurarProduto, con);

        comandoProcurarProduto.Parameters.AddWithValue("@Id_Produtos", id);
        int temp = Convert.ToInt16(comandoProcurarProduto.ExecuteScalar().ToString());

        if (temp == 1)
        {
            //Verificar se o produto tem ou não variedades
            String     ProcurarVariedades        = "select count(Variedade) from ProdutosVariedades where FKId_Produtos = @Id_Produtos";
            SqlCommand comandoProcurarVariedades = new SqlCommand(ProcurarVariedades, con);
            comandoProcurarVariedades.Parameters.AddWithValue("@Id_Produtos", id);
            int temp2 = Convert.ToInt16(comandoProcurarVariedades.ExecuteScalar().ToString());
            if (temp2 > 1)
            {
                //Se o produto ter diferentes variedades, preenche os campos na div UDivVariedades e fá-la visível para o utilizador escolher a sua variedade
                //esta nova div irá usar a função abaixo desta para inserir o produto na lista
                String     GetAtributos        = "select Imagem, Nome, ProdutosMarcas.Marca AS Marca, Preco, Quantidade from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas where Id_Produtos=@Id_Produtos";
                SqlCommand comandoGetAtributos = new SqlCommand(GetAtributos, con);
                comandoGetAtributos.Parameters.AddWithValue("@Id_Produtos", id);
                SqlDataReader dr = comandoGetAtributos.ExecuteReader();
                while (dr.Read())
                {
                    ProdutoImagemV.ImageUrl = dr["Imagem"].ToString();
                    LabelNomeV.Text         = dr["Nome"].ToString();
                    LabelNomeV.Text        += " " + dr["Marca"].ToString();
                    LabelNomeV.Text        += " " + dr["Quantidade"].ToString();
                    LabelPrecoV.Text        = dr["Preco"].ToString();
                }
                dr.Close();
                String     Getvariedades        = "select * from ProdutosVariedades where FKId_Produtos = @Id_Produtos";
                SqlCommand comandoGetvariedades = new SqlCommand(Getvariedades, con);
                comandoGetvariedades.Parameters.AddWithValue("@Id_Produtos", id);
                SqlDataReader dr2 = comandoGetvariedades.ExecuteReader();
                DropDownListVariedades.Items.Clear();
                while (dr2.Read())
                {
                    ListItem ItemdeVariedade = new ListItem();
                    ItemdeVariedade.Text  = dr2["Variedade"].ToString();
                    ItemdeVariedade.Value = dr2["Id_ProdutosVariedades"].ToString();
                    DropDownListVariedades.Items.Add(ItemdeVariedade);
                }
                dr2.Close();
                HiddenFieldIdV.Value   = id.ToString();
                TextBoxUnidadesV.Text  = unidades.ToString();
                UDivVariedades.Visible = true;
            }
            else if (temp2 == 1)
            {
                //Se o produto não tiver nenhuma variedade, insere-se o produto na lista
                String     GetAtributos        = "select Nome, ProdutosMarcas.Marca, Quantidade, Preco from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas where Id_Produtos=@Id_Produtos";
                SqlCommand comandoGetAtributos = new SqlCommand(GetAtributos, con);
                comandoGetAtributos.Parameters.AddWithValue("@Id_Produtos", id);
                string        nome            = "";
                string        marca           = "";
                string        quantidade      = "";
                float         precoporunidade = 0;
                SqlDataReader dr = comandoGetAtributos.ExecuteReader();
                while (dr.Read())
                {
                    nome            = dr["Nome"].ToString();
                    marca           = dr["Marca"].ToString();
                    quantidade      = dr["Quantidade"].ToString();
                    precoporunidade = float.Parse(dr["Preco"].ToString());
                }
                dr.Close();

                String     GetPromocao        = "select PrecoemDesconto from ProdutosPromocoes where FKId_Produtos=@FKId_Produtos and DatadeInicio <= GETDATE() and DatadeFim >= GETDATE()";
                SqlCommand comandoGetPromocao = new SqlCommand(GetPromocao, con);
                comandoGetPromocao.Parameters.AddWithValue("@FKId_Produtos", id);
                SqlDataReader dr2 = comandoGetPromocao.ExecuteReader();
                while (dr2.Read())
                {
                    precoporunidade = float.Parse(dr2["PrecoemDesconto"].ToString());
                }
                dr2.Close();

                String     GetAtributo        = "select Id_ProdutosVariedades from ProdutosVariedades where FKId_Produtos=@Id_Produtos";
                SqlCommand comandoGetAtributo = new SqlCommand(GetAtributo, con);
                comandoGetAtributo.Parameters.AddWithValue("@Id_Produtos", id);
                int           idv = 0;
                SqlDataReader dr3 = comandoGetAtributo.ExecuteReader();
                while (dr3.Read())
                {
                    idv = Int32.Parse(dr3["Id_ProdutosVariedades"].ToString());
                }
                dr3.Close();

                if (Session["ListadeCompras"] == null)
                {
                    Session["ListadeCompras"] = new ListadeItensdoCarrodeCompras();
                }
                ListadeItensdoCarrodeCompras lista = (ListadeItensdoCarrodeCompras)Session["ListadeCompras"];
                ItemdoCarrodeCompras         item;
                item = new ItemdoCarrodeCompras(id, idv, nome, marca, quantidade, precoporunidade, unidades);
                lista.additem(item);
                lista.updateunidadestotaisdalista();
                lista.updateprecototaldalista();
                Session["ListadeCompras"] = lista;
                UpdateListadeCompras();
            }
        }
        con.Close();
    }
Esempio n. 6
0
 //Abrir janela para editar item na lista de compras
 protected void ButtonEditarItemdaLista_Click(object sender, EventArgs e)
 {
     //Se o utilizador ter sessão
     Autenticate();
     //Se o utilizador ter artigos na sua lista de compras
     if (Session["ListadeCompras"] == null)
     {
         ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Não tem nenhum artigo que possa atualizar.');", true);
     }
     else
     {
         //Se o utilizador ter seleccionado um item para editar
         if (GridViewListadeCompras.SelectedValue == null)
         {
             ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Seleccione o artigo que pretende atualizar.');", true);
         }
         else
         {
             //Se o item seleccionado existir na variável de sessão
             ListadeItensdoCarrodeCompras lista = (ListadeItensdoCarrodeCompras)Session["ListadeCompras"];
             //Se o item seleccionado existir na base de dados, isto é feito com a mesma função com que se contam as variedades
             SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString);
             con.Open();
             //Verificar se o produto tem ou não variedades
             String     ProcurarProduto        = "select count(*) from ProdutosVariedades where FKId_Produtos=@FKId_Produtos";
             SqlCommand comandoProcurarProduto = new SqlCommand(ProcurarProduto, con);
             comandoProcurarProduto.Parameters.AddWithValue("@FKId_Produtos", GridViewListadeCompras.SelectedRow.Cells[2].Text);
             int temp = Convert.ToInt16(comandoProcurarProduto.ExecuteScalar().ToString());
             if (temp <= 0)
             {
                 ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Este produto não está disponível de momento.');", true);
             }
             else
             {
                 ELCHiddenFieldId.Value  = GridViewListadeCompras.SelectedRow.Cells[2].Text;
                 ELCHiddenFieldIdv.Value = GridViewListadeCompras.SelectedRow.Cells[3].Text;
                 //Se o produto não tiver variedades ("Sem variedades"), o atributo nome vai ser tirado da tabela Produtos, e se o produto tiver variedades, o atributo nome vai ser tirado da tabela ProdutosVariedades
                 String GetAtributos;
                 if (temp == 1)
                 {
                     GetAtributos = "select Imagem, Nome, ProdutosMarcas.Marca AS Marca, Preco, Quantidade from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas where Id_Produtos=@Id_Produtos";
                 }
                 //Obter a informação do produto da base de dados
                 else
                 {
                     GetAtributos = "select Imagem, Variedade as Nome, ProdutosMarcas.Marca AS Marca, Preco, Quantidade from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas left join ProdutosVariedades on Produtos.Id_Produtos=ProdutosVariedades.FKId_Produtos where Id_Produtos=@Id_Produtos and ProdutosVariedades.Id_ProdutosVariedades=@Id_ProdutosVariedades";
                 }
                 SqlCommand comandoGetAtributos = new SqlCommand(GetAtributos, con);
                 comandoGetAtributos.Parameters.AddWithValue("@Id_Produtos", GridViewListadeCompras.SelectedRow.Cells[2].Text);
                 if (temp > 1)
                 {
                     comandoGetAtributos.Parameters.AddWithValue("@Id_ProdutosVariedades", GridViewListadeCompras.SelectedRow.Cells[3].Text);
                 }
                 SqlDataReader dr = comandoGetAtributos.ExecuteReader();
                 //Obter o número de unidades desejadas da variável de sessão
                 ItemdoCarrodeCompras item = lista.getitematidv(Int32.Parse(ELCHiddenFieldIdv.Value));
                 //Configurar a página de edição do artigo
                 while (dr.Read())
                 {
                     ELCProdutoImagem.ImageUrl          = dr["Imagem"].ToString();
                     ELCLabelNomeMarcaeQuantidade.Text  = dr["Nome"].ToString();
                     ELCLabelNomeMarcaeQuantidade.Text += " " + dr["Marca"].ToString();
                     ELCLabelNomeMarcaeQuantidade.Text += " " + dr["Quantidade"].ToString();
                     ELCLabelPreco.Text = dr["Preco"].ToString();
                 }
                 dr.Close();
                 if (item.getunidades() == 1)
                 {
                     ELCLabelItem.Text = item.getunidades() + " unidade por " + item.getprecototal() + "€";
                 }
                 else if (item.getunidades() > 1)
                 {
                     ELCLabelItem.Text = item.getunidades() + " unidades por " + item.getprecototal() + "€";
                 }
                 ELCTextBoxUnidades.Text          = item.getunidades().ToString();
                 UDivEditarListadeCompras.Visible = true;
             }
             con.Close();
         }
     }
 }