Exemple #1
0
    protected void ButtonMail2_Click(object sender, EventArgs e)
    {
        Regex verifMail = new Regex(@"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$", RegexOptions.IgnoreCase);

        if (TextBoxMail2.Text != "")
        {
            if (verifMail.IsMatch(TextBoxMail2.Text.Trim()) == true)
            {
                Label2.Visible = false;
                RequeteBien alerte = (RequeteBien)Session["requete"];
                alerte.ID_CLIENT = TextBoxMail2.Text;

                if (alerte.ID_ALERTE.Equals(0))
                {
                    AlerteMailDAO.addAlerteMail(alerte);
                }
                else
                {
                    AlerteMailDAO.updateAlerteMail(alerte);
                }
                Label2.Visible = true;
                Label2.Text    = "Votre alerte mail pour " + alerte.ID_CLIENT + " vient d'être créé.";
            }
            else
            {
                Label2.Visible = true;
                Label2.Text    = "erreur de saisie, adresse e-mail invalide";
            }
        }
    }
    protected void ButtonSupprimer_Click(object sender, EventArgs e)
    {
        Int32 reference = Int32.Parse(Session["referenceAlerteMail"].ToString());

        Membre member = (Membre)Session["membre"];

        AlerteMailDAO.removeAlerteMail(reference);
        Response.Redirect("./monCompteAlertes.aspx");
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        ((Label)Page.Master.FindControl("titrebandeau")).Text = "Mes alertes";

        String reference = "";

        if (Session["logged"].Equals(true))
        {
            if (IsPostBack == false)
            {
                #region recuperation de l'alerte

                ///si il s'agit d'une update d'alerte email on la recupère grâce à l'id passé en GET et on la décode
                ///sinon il s'agit d'une creation... alors l'execution va sortir du bloc try sur une Null exception.

                try
                {
                    reference = Request.Params["ref"].ToString();

                    String decode1 = (String)Session["double1"];
                    String decode2 = (String)Session["double2"];


                    reference = reference.Replace(decode1, "");
                    reference = reference.Replace(decode2, "");

                    int id = int.Parse(reference);

                    Session["alerte"] = AlerteMailDAO.getAlerteMail(id);


                    RequeteBien alerte = AlerteMailDAO.getAlerteMail(id);

                    Session["alerteMail"] = alerte;

                    if (alerte.TYPEVENTE == "V")
                    {
                        radioButtonAchat.Checked = true;
                    }
                    else
                    {
                        radioButtonAchat.Checked = false;
                    }

                    if (alerte.TYPEBIEN.Contains("M"))
                    {
                        checkBoxMaison.Checked = true;
                    }
                    else
                    {
                        checkBoxMaison.Checked = false;
                    }

                    if (alerte.TYPEBIEN.Contains("A"))
                    {
                        checkBoxAppart.Checked = true;
                    }
                    else
                    {
                        checkBoxAppart.Checked = false;
                    }

                    if (alerte.TYPEBIEN.Contains("T"))
                    {
                        checkBoxTerrain.Checked = true;
                    }
                    else
                    {
                        checkBoxTerrain.Checked = false;
                    }

                    if (alerte.TYPEBIEN.Contains("X"))
                    {
                        checkBoxAutre.Checked = true;
                    }
                    else
                    {
                        checkBoxAutre.Checked = false;
                    }

                    if (alerte.PIECE1.Equals(true))
                    {
                        checkBoxPiece1.Checked = true;
                    }
                    else
                    {
                        checkBoxPiece1.Checked = false;
                    }

                    if (alerte.PIECE2.Equals(true))
                    {
                        checkBoxPiece2.Checked = true;
                    }
                    else
                    {
                        checkBoxPiece2.Checked = false;
                    }

                    if (alerte.PIECE3.Equals(true))
                    {
                        checkBoxPiece3.Checked = true;
                    }
                    else
                    {
                        checkBoxPiece3.Checked = false;
                    }

                    if (alerte.PIECE4.Equals(true))
                    {
                        checkBoxPiece4.Checked = true;
                    }
                    else
                    {
                        checkBoxPiece4.Checked = false;
                    }

                    if (alerte.PIECE5.Equals(true))
                    {
                        checkBoxPiece5.Checked = true;
                    }
                    else
                    {
                        checkBoxPiece5.Checked = false;
                    }

                    if (alerte.MOTCLE1.Length.Equals(0) == false)
                    {
                        textBoxMotCle1.Text = alerte.MOTCLE1;
                    }

                    if (alerte.MOTCLE2.Length.Equals(0) == false)
                    {
                        textBoxMotCle2.Text = alerte.MOTCLE2;
                    }

                    if (alerte.MOTCLE3.Length.Equals(0) == false)
                    {
                        textBoxMotCle3.Text = alerte.MOTCLE3;
                    }

                    if (alerte.MOTCLE4.Length.Equals(0) == false)
                    {
                        textBoxMotCle4.Text = alerte.MOTCLE4;
                    }

                    if (alerte.PRIXMIN.Equals(0) == false)
                    {
                        TextBoxBudgetMin.Text = alerte.PRIXMIN.ToString();
                    }

                    if (alerte.PRIXMAX.Equals(1000000000) == false)
                    {
                        TextBoxBudgetMax.Text = alerte.PRIXMAX.ToString();
                    }

                    if (alerte.SURFACEMIN.Equals(0) == false)
                    {
                        textBoxSurfaceMin.Text = alerte.SURFACEMIN.ToString();
                    }

                    if (alerte.SURFACEMAX.Equals(0) == false)
                    {
                        textBoxSurfaceMax.Text = alerte.SURFACEMAX.ToString();
                    }
                }
                catch
                {
                }
                #endregion

                // efface le label
                Label1.Text = "";
            }
        }
        else
        {
            Response.Redirect("./inscriptionAccueil.aspx");
        }
    }
    protected void ButtonAlerteMail_Click(object sender, EventArgs e)
    {
        RequeteBien alerte = null;

        if (Session["logged"].Equals(true))
        {
            try
            {
                //// recupère l'alerte mail dans la session
                //// si ça plante c'est qu'il n'y a pas d'alerte mail dans la session alors
                //// on créer une instance dans le bloque catch
                alerte = (RequeteBien)Session["alerte"];
            }
            catch
            {
                alerte = new RequeteBien();
            }

            Membre member = (Membre)Session["membre"];


            if (TextBoxBudgetMin.Text == "")
            {
                alerte.PRIXMIN = 0;
            }
            if (TextBoxBudgetMax.Text == "")
            {
                alerte.PRIXMAX = 1000000000;
            }
            if (textBoxSurfaceMin.Text == "")
            {
                alerte.SURFACEMIN = 0;
            }
            if (textBoxSurfaceMax.Text == "")
            {
                alerte.SURFACEMAX = 9999999;
            }

            if (verifChampSaisi(alerte).RECHERCHE_OK == true)
            {
                if (TextBoxBudgetMin.Text != "")
                {
                    alerte.PRIXMIN = Int64.Parse(TextBoxBudgetMin.Text.Trim());
                }
                if (TextBoxBudgetMax.Text != "")
                {
                    alerte.PRIXMAX = Int64.Parse(TextBoxBudgetMax.Text.Trim());
                }
                if (textBoxSurfaceMin.Text != "")
                {
                    alerte.SURFACEMIN = Int64.Parse(textBoxSurfaceMin.Text.Trim());
                }
                if (textBoxSurfaceMax.Text != "")
                {
                    alerte.SURFACEMAX = Int64.Parse(textBoxSurfaceMax.Text.Trim());
                }

                alerte.MOTCLE1 = textBoxMotCle1.Text.Trim();
                alerte.MOTCLE2 = textBoxMotCle2.Text.Trim();
                alerte.MOTCLE3 = textBoxMotCle3.Text.Trim();
                alerte.MOTCLE4 = textBoxMotCle4.Text.Trim();

                alerte.PIECE1 = checkBoxPiece1.Checked;
                alerte.PIECE2 = checkBoxPiece2.Checked;
                alerte.PIECE3 = checkBoxPiece3.Checked;
                alerte.PIECE4 = checkBoxPiece4.Checked;
                alerte.PIECE5 = checkBoxPiece5.Checked;



                if (checkBoxAppart.Checked == false && checkBoxTerrain.Checked == false && checkBoxMaison.Checked == false && checkBoxAutre.Checked == false)
                {
                    alerte.TYPEBIEN = "AMTX";
                }
                else
                {
                    alerte.TYPEBIEN = "";// permet de réinitialisé le champ
                    if (checkBoxAppart.Checked)
                    {
                        alerte.TYPEBIEN += "A";
                    }
                    if (checkBoxMaison.Checked)
                    {
                        alerte.TYPEBIEN += "M";
                    }
                    if (checkBoxTerrain.Checked)
                    {
                        alerte.TYPEBIEN += "T";
                    }
                    if (checkBoxAutre.Checked)
                    {
                        alerte.TYPEBIEN += "X";
                    }
                }


                alerte.Cible = ucCible.listeVilleRecherche.createString();

                if (radioButtonAchat.Checked)
                {
                    alerte.TYPEVENTE = "V";
                }
                else if (radioButtonLocation.Checked)
                {
                    alerte.TYPEVENTE = "L";
                }

                if (ListeNeuf.SelectedItem.Value == "0")
                {
                    alerte.NeufOuPas = false;
                    alerte.NEUF      = false;
                }
                else if (ListeNeuf.SelectedItem.Value == "1")
                {
                    alerte.NeufOuPas = false;
                    alerte.NEUF      = true;
                }
                else
                {
                    alerte.NeufOuPas = true;
                }
                alerte.PRESTIGE      = CBPrestige.Checked;
                alerte.COUP_DE_COEUR = CBCoeur.Checked;
                //sauvegarde l'objet alerte dans la session

                if (checkBoxMaison.Checked == true)
                {
                    Session["Type"] += " maison";
                }
                if (checkBoxAppart.Checked == true)
                {
                    Session["Type"] += " appartement";
                }
                if (checkBoxTerrain.Checked == true)
                {
                    Session["Type"] += " terrain";
                }
                if (radioButtonAchat.Checked == true)
                {
                    Session["Transaction"] = "achat";
                }
                else
                {
                    Session["Transaction"] = "location";
                }

                Session["Smin"] = textBoxSurfaceMin.Text;
                Session["Smax"] = textBoxSurfaceMax.Text;

                Session["BudgetMin"] = TextBoxBudgetMin.Text;
                Session["BudgetMax"] = TextBoxBudgetMax.Text;

                Session["NumPage"] = 1;
                Session["Tri"]     = "prix";

                Session["radioButtonAchat"] = radioButtonAchat.Checked;

                Session["checkBoxPiece1"] = checkBoxPiece1.Checked;
                Session["checkBoxPiece2"] = checkBoxPiece2.Checked;
                Session["checkBoxPiece3"] = checkBoxPiece3.Checked;
                Session["checkBoxPiece4"] = checkBoxPiece4.Checked;
                Session["checkBoxPiece5"] = checkBoxPiece5.Checked;


                Session["checkBoxMaison"]  = checkBoxMaison.Checked;
                Session["checkBoxAppart"]  = checkBoxAppart.Checked;
                Session["checkBoxTerrain"] = checkBoxTerrain.Checked;
                Session["checkBoxAutre"]   = checkBoxAutre.Checked;



                alerte.ID_CLIENT = member.ID_CLIENT;



                if (alerte.ID_ALERTE.Equals(0))
                {
                    AlerteMailDAO.addAlerteMail(alerte);
                }
                else
                {
                    AlerteMailDAO.updateAlerteMail(alerte);
                }

                Session["alerte"] = alerte;

                Response.Redirect("./monCompteAlertes.aspx");
            }//Fin de if
        }
        else
        {
            Response.Redirect("./inscriptionAccueil.aspx");  // l'utilisateur n'est pas loggué on le redirige vers la page de login/inscription
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        labelReponse.Font.Bold = true;

        if (Session["Membre"] != null)
        {
            labelRetour.Text = "Retourner à mes alertes:";
        }
        else
        {
            labelRetour.Text = "Retourner au menu principal :";
        }


        int    idAlerte;
        string type = Request.QueryString["type"];


        if (Int32.TryParse(Request.QueryString["id"], out idAlerte))
        {
            //Connexion à la BDD et recuperation de l'alerte
            Connexion     c = new Connexion();
            OdbcCommand   verifierAlerte = new OdbcCommand("select * from alerte_mail where id_alerte_mail = ?");
            OdbcParameter paramID        = new OdbcParameter("", DbType.Int32);
            paramID.Value = idAlerte;
            verifierAlerte.Parameters.Add(paramID);
            DataRowCollection drc = c.exeRequetteParametree(verifierAlerte).Tables[0].Rows;


            if (drc.Count != 0)
            {
                //condition a verifier
                byte[] plainMail              = Encoding.UTF8.GetBytes(drc[0]["id_Client"].ToString());
                byte[] plainIdAlerte          = Encoding.UTF8.GetBytes(idAlerte.ToString());
                byte[] plainTextWithSaltBytes = new byte[plainMail.Length + plainIdAlerte.Length];

                for (int i = 0; i < plainIdAlerte.Length; i++)
                {
                    plainTextWithSaltBytes[i] = plainIdAlerte[i];
                }

                for (int i = 0; i < plainMail.Length; i++)
                {
                    plainTextWithSaltBytes[plainIdAlerte.Length + i] = plainMail[i];
                }

                HashAlgorithm hash      = new SHA256Managed();
                byte[]        hashBytes = hash.ComputeHash(plainTextWithSaltBytes);
                string        hashValue = Convert.ToBase64String(hashBytes);

                string cle = Request.QueryString["cle"];
                if ((cle != hashValue) || (drc.Count == 0))
                {
                    labelReponse.Text = "Lien invalide: pas d'alerte correspondant";
                    Response.End();
                }


                if (type == "SUP")
                {
                    /*
                     * OdbcCommand fermerAlerte = new OdbcCommand("update alerte_mail set actif = false where id_alerte_mail = ?");
                     * OdbcParameter paramId2 = new OdbcParameter("", DbType.Int32);
                     * paramId2.Value = idAlerte;
                     * fermerAlerte.Parameters.Add(paramId2);
                     * c.exeRequetteParametree(fermerAlerte);*/

                    AlerteMailDAO.removeAlerteMail(idAlerte);
                    labelReponse.Text = "Votre alerte a été supprimée avec succes !";
                }
                else if (type == "ACT")
                {
                    //toutes les conditons ont été verifiées
                    OdbcCommand   fermerAlerte = new OdbcCommand("update alerte_mail set dateEnregistrement = ?, actif=true where id_alerte_mail = ?");
                    OdbcParameter paramDate    = new OdbcParameter("", DbType.DateTime);
                    paramDate.Value = DateTime.Now;
                    fermerAlerte.Parameters.Add(paramDate);
                    OdbcParameter paramId2 = new OdbcParameter("", DbType.Int32);
                    paramId2.Value = idAlerte;
                    fermerAlerte.Parameters.Add(paramId2);
                    c.exeRequetteParametree(fermerAlerte);
                    labelReponse.Text = "Votre alerte a été reactualisée avec succès !";
                }
                else
                {
                    labelReponse.Text = "Lien invalide";
                }
            }
            else
            {
                labelReponse.Text = "L'alerte que vous avez demandés n'existe pas ou a déjà été supprimée !";
            }
        }
        else
        {
            labelReponse.Text = "Numero d'alerte invalide";
        }
    }