Beispiel #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        //Checkt of de gebruiker ingelogd is als beheerder
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

        sqlConnection.Open();
        SqlCommand WwChecken  = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection);
        string     code       = (string)(Session["Login"]);
        string     Wachtwoord = WwChecken.ExecuteScalar().ToString();

        sqlConnection.Close();
        if (code != Wachtwoord)
        {
            Response.Redirect("Inlogpagina");
        }
        else
        {
            //Stopt de stemming en verwijdert alle opgeslagen telefoonnrhashes uit de database.
            string StemmingsNaam = Request.QueryString["Stemming"];
            Blocks.MaakBlock(StemmingsNaam);
            SqlCommand StopStemming = new SqlCommand("UPDATE Stemming SET Actief = 'false' WHERE StemmingsNaam = '" + StemmingsNaam + "'", sqlConnection);
            //Verandert alle gehashte telefoonnummers in '1'
            //De hoeveelheid ingevulde telefoonnummers worden later opgehaald in de resultatenpaginabeheerder
            //Daarom worden ze niet verandert in 'NULL'
            SqlCommand Verwijdertelnr = new SqlCommand("UPDATE UC SET HashTelNr = '1' WHERE StemmingsNaam = '" + StemmingsNaam + "' AND HashTelNr IS NOT NULL", sqlConnection);
            sqlConnection.Open();
            //Stopt de stemming
            StopStemming.ExecuteScalar();
            //Verwijdert alle opgeslagen gehashte telefoonnummers van de gestopte stemming uit de database
            Verwijdertelnr.ExecuteScalar();
            sqlConnection.Close();
            Response.Redirect("OverzichtBeheerder");
        }
    }
Beispiel #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        //Database connectie
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);
        SqlCommand        WwChecken     = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection);

        sqlConnection.Open();
        //Checkt of het wachtwoord overeenkomt met de gehashte versie uit de database
        string Wachtwoord = (string)WwChecken.ExecuteScalar();

        sqlConnection.Close();

        if ((string)Session["StemmingLogin"] == Wachtwoord)
        {
            SqlDataAdapter asd = new SqlDataAdapter("SELECT StemmingsNaam FROM Stemming WHERE Actief = 'True'", sqlConnection);
            DataTable      dt  = new DataTable();
            asd.Fill(dt);
            foreach (DataRow row in dt.Rows)
            {
                //Voegt een knop toe voor elke lopende stemming
                //Deze knop linkt naar de 'CodeUitgeven' pagina
                this.StemButtons += "<button formaction='Codeuitgeven.aspx?Stemming=" + row["Stemmingsnaam"] + "'>" + row["Stemmingsnaam"] + "</button><br />";
            }
        }
        else
        {
            Session["StemmingLogin"] = "";
            Response.Redirect("StemmingKiezenLogin");
        }
    }
Beispiel #3
0
    public bool CheckHash(string tel)
    {
        //Hier wordt de hash opnieuw gegenereerd, in de vorm van een sha256 hash
        //De hash wordt vergeleken met de hash in de database
        //Klopt deze hash niet dan wordt de gebruiker terug gestuurd
        SHA256 sha256 = SHA256Managed.Create();

        byte[] bytes      = Encoding.UTF8.GetBytes(tel);
        byte[] hash       = sha256.ComputeHash(bytes);
        string hashString = Convert.ToString(hash);


        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

        string     hashSelecteren = "SELECT " + tabelInDataTable + " FROM " + naamDataTable + " WHERE " + tabelInDataTable + " = " + hashString + ";";
        SqlCommand selectHash     = new SqlCommand(hashSelecteren, sqlConnection);

        sqlConnection.Open();
        string returnHash = Convert.ToString(selectHash.ExecuteScalar());

        sqlConnection.Close();

        if (returnHash == hashString)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
Beispiel #4
0
        /// <summary>
        /// Adds a report to a post
        /// </summary>
        ///  <param name="Post">Post that needs to be Reported</param>
        /// <returns>true if database allows changes false if not</returns>
        public static bool ReportPost(Post Post)
        {
            bool Check = false;
            int  ID    = DatabaseGetHighestID.GetHighestID("Post");

            if (DatabaseConnectie.OpenConnection())
            {
                try
                {
                    DatabaseConnectie.OpenConnection();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = DatabaseConnectie.connect;

                    cmd.CommandText = "UPDATE Post SET Rapportaties = (Rapportaties + 1) WHERE ID = @ID";;
                    cmd.Parameters.Add(new SqlParameter("ID", Post.ID));
                    cmd.ExecuteNonQuery();

                    Check = true;
                }
                catch (SqlException e)
                {
                    Console.WriteLine("Query Failed: " + e.StackTrace + e.Message.ToString());
                    Check = false;
                }
                finally
                {
                    DatabaseConnectie.CloseConnection();
                }
            }

            return(Check);
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        //Checkt of de stemming actief is
        DatabaseConnectie dbconnect      = new DatabaseConnectie();
        SqlConnection     sqlConnection  = new SqlConnection(dbconnect.dbConnectie);
        SqlCommand        StemmingActief = new SqlCommand("SELECT Actief FROM Stemming WHERE Stemmingsnaam = '" + Stemming + "';", sqlConnection);

        sqlConnection.Open();
        bool Actief = Convert.ToBoolean(StemmingActief.ExecuteScalar());

        if (Actief)
        {
            Response.Redirect("Inlogpagina");
        }

        //Checkt of de gebruiker ingelogd is als beheerder
        SqlCommand WwChecken  = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection);
        string     code       = (string)(Session["Login"]);
        string     Wachtwoord = WwChecken.ExecuteScalar().ToString();

        if (code != Wachtwoord)
        {
            Response.Redirect("Inlogpagina");
        }
        sqlConnection.Close();
    }
Beispiel #6
0
    public string LopendeStemmingenOphalen()
    {
        DatabaseConnectie dbconnect            = new DatabaseConnectie();
        SqlConnection     sqlConnection        = new SqlConnection(dbconnect.dbConnectie);
        SqlDataAdapter    SQLLopendeStemmingen = new SqlDataAdapter("SELECT StemmingsNaam FROM Stemming WHERE Actief = 'true'", sqlConnection);
        DataTable         dt = new DataTable();

        SQLLopendeStemmingen.Fill(dt);
        //Voor elke stemming die actief is
        foreach (DataRow row in dt.Rows)
        {
            //Geef de stemmingsnaam met een stopknop ernaast
            //Deze stopknop linkt naar de Tussenpagina, waar de stemming gestopt wordt
            //Ook het gehashte wachtwoord wordt meegegeven naar de tussenpagina, om veranderen van de URL op te vangen
            sqlConnection.Open();
            SqlCommand WwChecken  = new SqlCommand("SELECT Hash FROM Wachtwoord WHERE Id = '1'", sqlConnection);
            string     Wachtwoord = WwChecken.ExecuteScalar().ToString();

            //SqlCommand AantalUniekeCodes = new SqlCommand("SELECT COUNT(UniekeCode) FROM UC WHERE StemmingsNaam = '" + row["StemmingsNaam"] + "'", sqlConnection);
            //int AantalCodes = (int)AantalUniekeCodes.ExecuteScalar();

            //Aantal codes die zijn uitgegeven en aantal codes die nog over zijn
            SqlCommand UitgegevenUniekeCodes  = new SqlCommand("SELECT COUNT(UniekeCode) FROM UC WHERE StemmingsNaam = '" + row["StemmingsNaam"] + "' AND HashTelNr IS NOT NULL", sqlConnection);
            int        UitgegevenCodes        = (int)UitgegevenUniekeCodes.ExecuteScalar();
            SqlCommand BeschikbareUniekeCodes = new SqlCommand("SELECT COUNT(UniekeCode) FROM UC WHERE StemmingsNaam = '" + row["StemmingsNaam"] + "' AND HashTelNr IS NULL", sqlConnection);
            int        BeschikbareCodes       = (int)BeschikbareUniekeCodes.ExecuteScalar();

            this.LopendeStemmingen += "<h1>" + row["StemmingsNaam"] + "</h1>Uitgegeven codes: " + UitgegevenCodes + "<br />Beschikbare codes: " + BeschikbareCodes + "<br />" + "<br /><button ID=knopStop formaction='TussenPagina.aspx?Stemming=" + row["StemmingsNaam"] + "&Login="******"'>Stop</button></h1>";
            sqlConnection.Close();
        }
        //returnt de code van lopende stemmingen
        return(this.LopendeStemmingen);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //Checkt of de gebruiker ingelogd is als beheerder
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

        sqlConnection.Open();
        SqlCommand WwChecken  = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection);
        string     code       = (string)(Session["Login"]);
        string     Wachtwoord = WwChecken.ExecuteScalar().ToString();

        if (code != Wachtwoord)
        {
            Response.Redirect("Inlogpagina");
        }
        sqlConnection.Close();

        //Maakt de tabel aan voor de projecten
        TableHeaderRow header = new TableHeaderRow();

        Tbl_Projecten.Rows.Add(header);
        TableHeaderCell headerTableCell1 = new TableHeaderCell();

        headerTableCell1.Text = "Teams:";
        header.Cells.Add(headerTableCell1);
    }
Beispiel #8
0
        /// <summary>
        /// Gets all post that have below 5 reports
        /// </summary>
        /// <returns>A list with posts</returns>
        public static List <Post> GetSafePost()
        {
            List <Post> Postlist = new List <Post>();

            byte[] File;
            string Attachment;

            if (DatabaseConnectie.OpenConnection())
            {
                try
                {
                    DatabaseConnectie.OpenConnection();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = DatabaseConnectie.connect;

                    cmd.CommandText = "SELECT * FROM Post WHERE Rapportaties < 5 AND PostID IS NULL";
                    SqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        int      ID         = Convert.ToInt32(reader["ID"]);
                        int      TimelineID = Convert.ToInt32(reader["TijdlijnID"]);
                        int      AccountID  = Convert.ToInt32(reader["AccountID"]);
                        string   PostID     = (reader["PostID"].ToString());
                        string   Category   = (reader["Categorie"].ToString());
                        string   Text       = (reader["Tekstinhoud"].ToString());
                        DateTime Date       = Convert.ToDateTime(reader["Datum"]);
                        int      Likes      = Convert.ToInt32(reader["Likes"]);
                        int      Reports    = Convert.ToInt32(reader["Rapportaties"]);
                        bool     Readable   = (Convert.ToBoolean(reader["Leesbaar"]));
                        if (reader["Bestand"] != DBNull.Value)
                        {
                            Attachment = "Bijlage";
                            File       = (byte[])reader["Bestand"];
                        }
                        else
                        {
                            Attachment = "None";
                            File       = null;
                        }

                        Account Account = DatabaseGetAccounts.GetSingleAccountID(AccountID);

                        Post GottenPost = new Post(ID, Text, Category, AccountID, TimelineID, Likes, Account, File, Attachment, PostID);
                        Postlist.Add(GottenPost);
                    }
                    return(Postlist);
                }
                catch (SqlException e)
                {
                    Console.WriteLine("Query Failed: " + e.StackTrace + e.Message.ToString());
                }
                finally
                {
                    DatabaseConnectie.CloseConnection();
                }
            }
            return(Postlist);
        } //Gets all posts who havent been reported 5 times or more
Beispiel #9
0
        /// <summary>
        /// //Returns the posts that contain the searched word and category (ook slecht)
        /// </summary>
        /// <param name="Fwoord">Woord van post</param>
        /// <param name="Fcat">categorie van post</param>
        /// <returns>A list with posts</returns>
        public static List <Post> GetWordCategory(string Fwoord, string Fcat)
        {
            List <Post> Postlist = new List <Post>();

            byte[] File;
            string Attachment;

            if (DatabaseConnectie.OpenConnection())
            {
                try
                {
                    DatabaseConnectie.OpenConnection();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = DatabaseConnectie.connect;

                    cmd.CommandText = "SELECT p.Categorie, p.AccountID, p.TijdlijnID, p.Tekstinhoud, p.Likes, a.Naam, p.Bestand FROM Post p, Account a WHERE p.AccountID = a.ID AND p.Tekstinhoud LIKE " + "'%" + Fwoord + "%'" + "AND p.Categorie = " + "'" + Fcat + "'" + ";";
                    SqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        //int ID = Convert.ToInt32(reader["ID"]);
                        int TimelineID = Convert.ToInt32(reader["TijdlijnID"]);
                        int AccountID  = Convert.ToInt32(reader["AccountID"]);
                        //string PostID = (reader["PostID"].ToString());
                        string Category = (reader["Categorie"].ToString());
                        string Text     = (reader["Tekstinhoud"].ToString());
                        //DateTime Date = Convert.ToDateTime(reader["Datum"]);
                        int Likes = Convert.ToInt32(reader["Likes"]);
                        //int Reports = Convert.ToInt32(reader["Rapportaties"]);
                        //bool Readable = (Convert.ToBoolean(reader["Leesbaar"]));
                        if (reader["Bestand"] != DBNull.Value)
                        {
                            Attachment = "Bijlage";
                            File       = (byte[])reader["Bestand"];
                        }
                        else
                        {
                            Attachment = "None";
                            File       = null;
                        }

                        Account Account = DatabaseGetAccounts.GetSingleAccountID(AccountID);

                        Post GottenPost = new Post(Text, Category, AccountID, TimelineID, Likes, Account, File, Attachment);
                        Postlist.Add(GottenPost);
                    }
                    return(Postlist);
                }
                catch (SqlException e)
                {
                    Console.WriteLine("Query Failed: " + e.StackTrace + e.Message.ToString());
                }
                finally
                {
                    DatabaseConnectie.CloseConnection();
                }
            }
            return(Postlist);
        }
Beispiel #10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);
        SqlCommand        WwChecken     = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection);

        sqlConnection.Open();
        //Checkt of het wachtwoord overeenkomt met de gehashte versie uit de database
        string Wachtwoord = (string)WwChecken.ExecuteScalar();

        sqlConnection.Close();

        if ((string)Session["StemmingLogin"] == Wachtwoord)
        {
            string Stemming = Request.QueryString["Stemming"];
            sqlConnection.Open();

            //Checkt of de stemming bestaat
            SqlCommand CheckStemmingBestaat = new SqlCommand("SELECT COUNT(*) From Stemming WHERE StemmingsNaam = '" + Stemming + "'", sqlConnection);
            int        StemmingBestaat      = (int)CheckStemmingBestaat.ExecuteScalar();

            //Checkt of de stemming actief is
            SqlCommand CheckActief    = new SqlCommand("SELECT Actief FROM Stemming WHERE Stemmingsnaam = '" + Stemming + "'", sqlConnection);
            bool       StemmingActief = Convert.ToBoolean(CheckActief.ExecuteScalar());
            sqlConnection.Close();

            //Redirect naar de inlogpagina als de stemming niet bestaat
            if (StemmingBestaat == 0)
            {
                Response.Redirect("Inlogpagina");
                return;
            }
            //Redirect naar de resultatenpagina van de stemming als de stemming afgelopen is
            if (StemmingActief == false)
            {
                Response.Redirect("ResultatenPagina.aspx?Stemming=" + Stemming);
                return;
            }
            if (ImageButtons == false)
            {
                txtbx_telnr.Enabled = true;
            }
        }
        else
        {
            Session["StemmingLogin"] = "";
            Response.Redirect("StemmingKiezenLogin");
        }
    }
Beispiel #11
0
    //Controleert en slaat het nieuwe wachtwoord op in de database
    protected void btn_Opslaan_Click(object sender, EventArgs e)
    {
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);
        SqlCommand        WwChecken     = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection);

        sqlConnection.Open();
        //Leest het laatst toegevoegde wachtwoord
        Wachtwoord = (string)WwChecken.ExecuteScalar();
        sqlConnection.Close();

        //Checkt of het oude wachtwoord goed is
        if (HashGenereren.checkHash(txtbx_OudWw.Text, Wachtwoord))
        {
            //Checkt of de nieuw ingevoerde wachtwoorden overeenkomen
            if (txtbx_NieuwWw1.Text == txtbx_NieuwWw2.Text)
            {
                if (txtbx_NieuwWw1.Text.Length > 5)
                {
                    //Hasht het nieuwe wachtwoord en Voegt het toe in de database
                    string hash = HashGenereren.Genereer(txtbx_NieuwWw1.Text);
                    sqlConnection.Open();
                    SqlCommand WwToevoegen = new SqlCommand("INSERT INTO Wachtwoord (Hash) VALUES ('" + hash + "');", sqlConnection);
                    WwToevoegen.ExecuteNonQuery();
                    sqlConnection.Close();
                    lbl_Info.Text = "Wachtwoord Verandert!";
                    Response.Redirect("InlogpaginaBeheerder");
                    Session["Login"]    = "";
                    txtbx_OudWw.Text    = "";
                    txtbx_NieuwWw1.Text = "";
                    txtbx_NieuwWw2.Text = "";
                }
                else
                {
                    lbl_Info.Text = "Uw nieuwe wachtwoord moet minimaal 6 karakters bevatten";
                }
            }
            else
            {
                lbl_Info.Text = "De velden bij Nieuwe Wachtwoord komen niet overeen";
            }
        }
        else
        {
            lbl_Info.Text = "Het oude wachtwoord is onjuist ingevoerd";
        }
    }
Beispiel #12
0
    public string AfgelopenStemmingenOphalen()
    {
        DatabaseConnectie dbconnect              = new DatabaseConnectie();
        SqlConnection     sqlConnection          = new SqlConnection(dbconnect.dbConnectie);
        SqlDataAdapter    SQLAfgelopenStemmingen = new SqlDataAdapter("SELECT StemmingsNaam FROM Stemming WHERE Actief = 'false'", sqlConnection);
        DataTable         dt = new DataTable();

        SQLAfgelopenStemmingen.Fill(dt);
        //Voor elke stemming:
        foreach (DataRow row in dt.Rows)
        {
            //Maak een knop aan die linkt naar de beheerdersresultatenpagina van deze stemming
            this.AfgelopenStemmingen += "<button formaction='ResultatenPaginaBeheerder.aspx?Stemming=" + row["StemmingsNaam"] + "'>" + row["StemmingsNaam"] + "</button><br />";
        }
        //returnt de code van afgelopen stemmingen
        return(this.AfgelopenStemmingen);
    }
Beispiel #13
0
        } //Adding the gottenpost from the business layer to the database

        /// <summary>
        /// Adds a reaction to posts
        /// </summary>
        ///  <param name="Post">Post that needs to be added (reaction)</param>
        /// <returns>true if database allows changes false if not</returns>
        public static bool AddReaction(Post Post)
        {
            bool Check = false;
            int  ID    = DatabaseGetHighestID.GetHighestID("Post");

            if (DatabaseConnectie.OpenConnection())
            {
                try
                {
                    DatabaseConnectie.OpenConnection();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = DatabaseConnectie.connect;

                    if (Post.File == null)
                    {
                        cmd.CommandText = "INSERT INTO Post (ID, Tekstinhoud, postID, Datum, Categorie, TijdlijnID, AccountID) VALUES (@ID, @Text, @PostID, @Date, @Category, @TimelineID, @AccountID)";
                    }
                    else
                    {
                        cmd.CommandText = "INSERT INTO Post (ID, Tekstinhoud, postID, Datum, Categorie, TijdlijnID, AccountID, Bestand) VALUES (@ID, @Text, @PostID, @Date, @Category, @TimelineID, @AccountID, @File)";
                        cmd.Parameters.Add(new SqlParameter("File", Post.File));
                    }
                    cmd.Parameters.Add(new SqlParameter("ID", ID));
                    cmd.Parameters.Add(new SqlParameter("Text", Post.Text));
                    cmd.Parameters.Add(new SqlParameter("postID", Post.PostID));
                    cmd.Parameters.Add(new SqlParameter("Date", System.DateTime.Now));
                    cmd.Parameters.Add(new SqlParameter("Category", Post.Category));
                    cmd.Parameters.Add(new SqlParameter("TimelineID", Post.TimeLineID));
                    cmd.Parameters.Add(new SqlParameter("AccountID", Post.AccountID));
                    cmd.ExecuteNonQuery();

                    Check = true;
                }
                catch (SqlException e)
                {
                    Console.WriteLine("Query Failed: " + e.StackTrace + e.Message.ToString());
                    Check = false;
                }
                finally
                {
                    DatabaseConnectie.CloseConnection();
                }
            }

            return(Check);
        }
Beispiel #14
0
    protected void Page_Load(object sender, EventArgs e)
    {
        //Checkt of de gebruiker ingelogd is als beheerder
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

        sqlConnection.Open();
        SqlCommand WwChecken  = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection);
        string     code       = (string)(Session["Login"]);
        string     Wachtwoord = WwChecken.ExecuteScalar().ToString();

        if (code != Wachtwoord)
        {
            Response.Redirect("Inlogpagina");
        }
        sqlConnection.Close();
    }
Beispiel #15
0
    public static void MaakBlock(string Stemming)
    {
        string            blockstring   = "";
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

        sqlConnection.Open();

        //Selecteer maximaal 5 uniekecodes en op wie ze gestemd hebben
        SqlDataAdapter StemData = new SqlDataAdapter("SELECT Top(5) UniekeCode, GestemdOp FROM UC WHERE GestemdOp IS NOT NULL AND InBlock = 'False' AND StemmingsNaam = '" + Stemming + "'", sqlConnection);

        //Voeg de gehashte uniekecodes en gestemdop toe aan de blockstring
        DataTable dt = new DataTable();

        StemData.Fill(dt);
        //Checkt of er nog stemmen zijn die niet in een block staan
        if (dt.Rows.Count > 0)
        {
            //Voor elke stem die nog niet in een block staat
            foreach (DataRow row in dt.Rows)
            {
                //Hash de UniekeCode en op wie gestemd is en voeg dit toe aan de blockstring
                //Voeg '#' tussen de gehaste 'UniekeCode' en gehashte 'GestemdOp' toe en '&' na 'GestemdOp'
                blockstring += HashGenereren.Genereer((string)row["UniekeCode"]) + "#" + HashGenereren.Genereer((string)row["GestemdOp"]) + "&";
            }

            //Selecteer de string blockdata van het nieuwste blok met de juiste stemming erbij
            SqlCommand NieuwsteBlock = new SqlCommand("SELECT Blockdata FROM Block WHERE StemmingsNaam = '" + Stemming + "' ORDER BY Id DESC", sqlConnection);

            //Voeg de eerste 16 karakters van het vorige blok toe aan het nieuwe blok
            string VorigeBlock = (string)NieuwsteBlock.ExecuteScalar();
            blockstring += VorigeBlock.Substring(0, 16);

            //Zet Inblock op 'true' voor de stemmen die in de block worden gezet
            //zodat deze stemmen niet nog een keer kunnen worden meegenomen in een block
            SqlCommand UpdateGestemdOp = new SqlCommand("UPDATE Top(5) UC SET InBlock='True' WHERE GestemdOp IS NOT NULL AND InBlock = 'False' AND StemmingsNaam = '" + Stemming + "'", sqlConnection);
            UpdateGestemdOp.ExecuteScalar();
            //Voeg de blockstring toe aan de database
            SqlCommand BlockToevoegen = new SqlCommand("INSERT INTO Block (Blockdata, StemmingsNaam) VALUES ('" + blockstring + "', '" + Stemming + "')", sqlConnection);
            BlockToevoegen.ExecuteScalar();
        }
        //Sluit de connectie
        sqlConnection.Close();
    }
Beispiel #16
0
    public Buttons(string StemCode, string ZoekResultaat)
    {
        TeamButtons = "";
        DatabaseConnectie dbconnect          = new DatabaseConnectie();
        SqlConnection     sqlConnection      = new SqlConnection(dbconnect.dbConnectie);
        SqlCommand        CheckStemmingsNaam = new SqlCommand("SELECT StemmingsNaam FROM UC WHERE UniekeCode = '" + StemCode + "'", sqlConnection);

        sqlConnection.Open();
        //Haal de naam van de stemming op die hoort bij de stemcode
        SqlDataReader dr = CheckStemmingsNaam.ExecuteReader();

        while (dr.Read())
        {
            this.StemmingsNaam = dr[0].ToString();
        }
        dr.Close();



        try
        {
            SqlDataAdapter asd = new SqlDataAdapter("Select Naam From Project WHERE StemmingsNaam = '" + StemmingsNaam + "' AND Naam LIKE '%" + ZoekResultaat + "%'", sqlConnection);
            DataTable      dt  = new DataTable();
            asd.Fill(dt);
            //Voor elk project uit de stemming
            foreach (DataRow row in dt.Rows)
            {
                //Maak een knop aan met de projectnaam erop die linkt naar de BevestigStem pagina
                this.TeamButtons += "<button formaction='BevestigStem.aspx?GestemdOp=" + row["Naam"] + "'>" + row["Naam"] + "</button><br />";
            }
        }
        catch (SqlException Ex)
        {
            SqlDataAdapter asd = new SqlDataAdapter("Select Naam From Project WHERE StemmingsNaam = '" + StemmingsNaam + "' AND Naam LIKE '%%'", sqlConnection);
            DataTable      dt  = new DataTable();
            asd.Fill(dt);
            //Voor elk project uit de stemming
            foreach (DataRow row in dt.Rows)
            {
                //Maak een knop aan met de projectnaam erop die linkt naar de BevestigStem pagina
                this.TeamButtons += "<button formaction='BevestigStem.aspx?GestemdOp=" + row["Naam"] + "'>" + row["Naam"] + "</button><br />";
            }
        }
    }
Beispiel #17
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string Stemming = Request.QueryString["Stemming"];
        //Laadt de resultaten van de stemming uit de URL
        //Deze pagina is ook te laden als je de URL goed intypt, omdat de resultaten publiek zijn
        DatabaseConnectie dbconnect       = new DatabaseConnectie();
        SqlConnection     sqlConnection   = new SqlConnection(dbconnect.dbConnectie);
        SqlCommand        StemmingActief  = new SqlCommand("SELECT Actief FROM Stemming WHERE Stemmingsnaam = '" + Stemming + "';", sqlConnection);
        SqlCommand        StemmingBestaat = new SqlCommand("SELECT COUNT(*) From Stemming WHERE Stemmingsnaam = '" + Stemming + "'", sqlConnection);

        sqlConnection.Open();
        bool Bestaat = Convert.ToBoolean(StemmingBestaat.ExecuteScalar());
        bool Actief  = Convert.ToBoolean(StemmingActief.ExecuteScalar());

        if (Actief || !Bestaat)
        {
            Response.Redirect("Inlogpagina");
        }
        sqlConnection.Close();
    }
    protected void Button_Login_Click(object sender, EventArgs e)
    {
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);
        SqlCommand        WwChecken     = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection);

        sqlConnection.Open();
        //Checkt of het wachtwoord overeenkomt met de gehashte versie uit de database
        Wachtwoord = (string)WwChecken.ExecuteScalar();
        sqlConnection.Close();

        if (HashGenereren.checkHash(txtbx_Login.Text, Wachtwoord))
        {
            Session["Login"] = Wachtwoord;
            Response.Redirect("OverzichtBeheerder.aspx");
        }
        else
        {
            lbl_Info.Text = "Foutieve Inlogcode";
        }
    }
Beispiel #19
0
    //Haalt de resultaten op voor de gebruiker (toont alleen de winnaar)
    public static string UitslagStemming(string Stemming)
    {
        if (GebruikBlockchain)
        {
            Blocks.Decodeer(Stemming);
        }

        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);
        string            Uitslag       = "<h2>" + "De winnaar is</br>" + "</h2>";

        //Checkt hoeveel projecten de meeste stemmen hebben
        SqlCommand CheckWinnaar = new SqlCommand("SELECT COUNT(*) FROM (SELECT GestemdOp FROM UC WHERE StemmingsNaam = '" + Stemming + "' AND GestemdOp = (SELECT Max(GestemdOp) FROM UC)) x", sqlConnection);
        //Haalt de winnaar op
        SqlCommand winnaar = new SqlCommand("SELECT GestemdOp, Count(GestemdOp)AS 'AantalGestemd' FROM UC WHERE StemmingsNaam = '" + Stemming + "' GROUP BY GestemdOp ORDER BY AantalGestemd DESC;", sqlConnection);

        sqlConnection.Open();

        //Selecteert het project met de meeste stemmen
        if (GebruikBlockchain)
        {
            //Winnaar ophalen met blockchain werkt nog niet!
            //string Winnaar = (from x in Blocks.GestemdOp select x).Count().Max();
            //Winnaar ophalen met LINQ werkt nog niet goed
            //var maxValue = Blocks.GestemdOp.Max(x => x);
            //var Winnaar = Blocks.GestemdOp.Select(x => x == maxValue);
            //string Winnaar = ((from x in Blocks.GestemdOp select x.Count())).Max();
            //Uitslag += Winnaar;

            //Haalt de winnaar op zonder blockchain (omdat met blockchain nog niet werkt):
            Uitslag += "<h4>" + winnaar.ExecuteScalar() + "</h4>";
        }
        else
        {
            Uitslag += "<h4>" + winnaar.ExecuteScalar() + "</h4>";
        }
        sqlConnection.Close();
        //Returnt een string met daarin de winnaar
        return(Uitslag);
    }
Beispiel #20
0
    public HashToBlock(string tel)
    {
        //Hier wordt de hash gegenereerd, in de vorm van een sha256 hash
        //Er is gekozen voor 256 bits versleuteling omdat deze niet te ontsleutelen is
        //Daarnaasts is deze snel uit te rekenen om te versleutelen
        SHA256 sha256 = SHA256Managed.Create();

        byte[] bytes      = Encoding.UTF8.GetBytes(tel);
        byte[] hash       = sha256.ComputeHash(bytes);
        string hashString = Convert.ToString(hash);


        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

        string     hashToevoegen = "INSERT INTO " + naamDataTable + " VALUES ('" + hashString + "');";
        SqlCommand insertHash    = new SqlCommand(hashToevoegen, sqlConnection);

        sqlConnection.Open();
        insertHash.ExecuteNonQuery();
        sqlConnection.Close();
    }
Beispiel #21
0
    protected void btn_Login_Click(object sender, EventArgs e)
    {
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);
        SqlCommand        WwChecken     = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection);

        sqlConnection.Open();
        //Checkt of het wachtwoord overeenkomt met de gehashte versie uit de database
        string Wachtwoord = (string)WwChecken.ExecuteScalar();

        sqlConnection.Close();

        if (HashGenereren.checkHash(txtbx_Login.Text, Wachtwoord))
        {
            lbl_Info.Text            = string.Empty;
            Session["StemmingLogin"] = Wachtwoord;
            Response.Redirect("StemmingKiezen.aspx");
        }
        else
        {
            lbl_Info.Text = "Dit wachtwoord is fout";
        }
    }
Beispiel #22
0
        public void DatabaseConnectionTest()
        {
            bool Check = DatabaseConnectie.OpenConnection();

            Assert.AreEqual(true, Check);
        }
Beispiel #23
0
    public static void Decodeer(string Stemming)
    {
        //Maak de lijsten leeg
        HashGebruikteCodes.Clear();
        GestemdOp.Clear();
        string            Block               = "";
        string            Stem                = "";
        string            HashUniekeCode      = "";
        string            HashGestemdOp       = "";
        bool              HashUniekeCodeUniek = true;
        DatabaseConnectie dbconnect           = new DatabaseConnectie();
        SqlConnection     sqlConnection       = new SqlConnection(dbconnect.dbConnectie);

        sqlConnection.Open();

        //Checkt of de stemming wel afgelopen is (zo niet, dan gebeurt er niks)
        SqlCommand CheckAfgelopen = new SqlCommand("SELECT Actief FROM Stemming WHERE StemmingsNaam = '" + Stemming + "'", sqlConnection);
        bool       StemmingActief = Convert.ToBoolean(CheckAfgelopen.ExecuteScalar());

        if (StemmingActief == false)
        {
            SqlDataAdapter StemData = new SqlDataAdapter("SELECT BlockData FROM Block WHERE StemmingsNaam = '" + Stemming + "'", sqlConnection);

            //Voor elke string uit de db
            DataTable dt = new DataTable();
            StemData.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    //Haal de blokdata op uit de database
                    Block = (string)row["BlockData"];
                    //Check of het genesisblock is (lengte 50)
                    //Als het block een genesisblok is (dus geen stemdata)
                    //Sla het block dan over
                    if (Block.Length != 50)
                    {
                        //Check of de laatste paar karakters overeenkomen met het begin van de vorige string



                        //Verwijder de laatste 16 karakters (eerste 16 karakters van vorige block)
                        Block = Block.Remove(Block.Length - 16);
                        //Block Ontleden in delen en toevoegen aan List

                        //Zolang er nog stemmen in het blok staan
                        while (Block.Length > 0)
                        {
                            //Haal de eerste stem op uit de blockstring
                            Stem = Block.Substring(0, Block.IndexOf("&"));
                            //Verwijder de eerste stemstring uit de blockstring
                            Block = Block.Substring(Stem.Length + 1, Block.Length - Stem.Length - 1);
                            //Haal de hash van de unieke code uit de stemstring
                            HashUniekeCode = Stem.Substring(0, Stem.IndexOf("#"));
                            //Haal de hash van het project waarop gestemd is op
                            HashGestemdOp = Stem.Substring(Stem.IndexOf("#") + 1);

                            //Check of de UniekeCode al gebruikt is
                            foreach (string code in HashGebruikteCodes)
                            {
                                if (HashUniekeCode == code)
                                {
                                    HashUniekeCodeUniek = false;
                                }
                            }

                            //Als de UniekeCode nog niet gebruikt is
                            if (HashUniekeCodeUniek)
                            {
                                //Voegt de hash van de unieke code toe aan een lijst. Hierdoor kan hij niet nog een keer gebruikt worden.
                                HashGebruikteCodes.Add(HashUniekeCode);
                                SqlDataAdapter ucs   = new SqlDataAdapter("SELECT UniekeCode FROM UC WHERE StemmingsNaam = '" + Stemming + "'", sqlConnection);
                                DataTable      dtucs = new DataTable();
                                ucs.Fill(dtucs);

                                //Check of er unieke codes bij de stemming zijn
                                if (dtucs.Rows.Count > 0)
                                {
                                    //Voor elke UniekeCode
                                    foreach (DataRow ucsrow in dtucs.Rows)
                                    {
                                        //Als de hash overeenkomt met de UniekeCode uit de database
                                        if (HashGenereren.checkHash((string)ucsrow["UniekeCode"], HashUniekeCode))
                                        {
                                            SqlDataAdapter Projecten   = new SqlDataAdapter("SELECT Naam FROM Project WHERE StemmingsNaam = '" + Stemming + "'", sqlConnection);
                                            DataTable      dtprojecten = new DataTable();
                                            Projecten.Fill(dtprojecten);

                                            //Checkt of het project bestaat
                                            if (dtprojecten.Rows.Count > 0)
                                            {
                                                //Voor elk project
                                                foreach (DataRow projectrow in dtprojecten.Rows)
                                                {
                                                    //Check of de hash overeenkomt met 1 van de projecten uit de database van die stemming
                                                    if (HashGenereren.checkHash((string)projectrow["Naam"], HashGestemdOp))
                                                    {
                                                        //Voeg de projectnaam toe aan de GestemdOp lijst
                                                        GestemdOp.Add((string)projectrow["Naam"]);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                //Maakt de lijst leeg zodat bij een volgende stemming er geen problemen met duplicate hashes zijn.
                HashGebruikteCodes.Clear();
            }
        }
        //Sluit de connectie
        sqlConnection.Close();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //Ingevulde Stemcode ophalen en opslaan in string StemCode
        string StemCode = Request.QueryString["Stemmer"];

        //Redirect de gebruiker naar de inlogpagina als hij/zij de URL aanpast
        if (string.IsNullOrEmpty(Convert.ToString(StemCode)))
        {
            Response.Redirect(Standaardpagina);
        }

        //Database connectie
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

        //Controleren of de stemming actief is
        SqlCommand CheckActief = new SqlCommand("SELECT Actief FROM Stemming WHERE Stemmingsnaam IN (SELECT StemmingsNaam FROM UC WHERE UniekeCode = '" + StemCode + "');", sqlConnection);
        //Controleren of een StemCode al is gebruikt
        SqlCommand GetStatusCode = new SqlCommand("SELECT GestemdOp FROM UC WHERE UniekeCode = '" + StemCode + "';", sqlConnection);
        //Controleer of de ingevulde unieke code in de database staat
        SqlCommand CheckUniekeCode = new SqlCommand("SELECT COUNT(*) From UC WHERE ([UniekeCode] = '" + StemCode + "' COLLATE SQL_Latin1_General_CP1_CS_AS)", sqlConnection);


        //Database verbinding openen
        sqlConnection.Open();
        bool ActieveCode;

        if (GetStatusCode.ExecuteScalar() is DBNull)
        {
            ActieveCode = false;
        }
        else
        {
            ActieveCode = true;
        }
        //ActieveCode = Convert.ToBoolean(GetStatusCode.ExecuteScalar());
        int  CodeBestaat    = (int)CheckUniekeCode.ExecuteScalar();
        bool StemmingActief = Convert.ToBoolean(CheckActief.ExecuteScalar());

        //Verbinding met database verbreken
        sqlConnection.Close();

        //Als de stemming niet actief is wordt automatisch geredirect naar de resultatenpagina
        if (StemmingActief == false)
        {
            SqlCommand CheckStemmingsNaam = new SqlCommand("SELECT StemmingsNaam FROM UC WHERE UniekeCode = '" + StemCode + "'", sqlConnection);
            sqlConnection.Open();
            //Haal string uit CheckStemmingsNaam
            SqlDataReader dr = CheckStemmingsNaam.ExecuteReader();

            while (dr.Read())
            {
                StemCode = Request.QueryString["Stemmer"];
                Response.Redirect("ResultatenPagina.aspx?Stemming=" + dr[0].ToString());
            }
            dr.Close();
            sqlConnection.Close();
        }
        else
        {
            //Als de code al is gebruikt of als de URL is aangepast dan wordt de gebruiker geredirect naar de inlogpagina
            if (ActieveCode == true || CodeBestaat != 1)
            {
                Response.Redirect(Standaardpagina);
            }
            else
            {
                Session["Stemcode"] = StemCode;
            }
        }
    }
Beispiel #25
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string Team            = (string)Session["Team"];
            string StemCode        = (string)Session["Stemcode"];
            string Standaardpagina = "Inlogpagina";

            //Vangt veranderen van de URL op
            if (string.IsNullOrEmpty((string)Session["Stemcode"]) || string.IsNullOrEmpty((string)Session["Team"]))
            {
                Response.Redirect(Standaardpagina);
            }

            //Databaseconnectie maken
            DatabaseConnectie dbconnect     = new DatabaseConnectie();
            SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

            //Zet het team waarop gestemd is vast bij de unieke code van de gebruiker die ingelogd is
            string StemToevoegen = "UPDATE UC SET GestemdOp='" + Team + "' WHERE UniekeCode = '" + StemCode + "';";
            //Maakt de sessievariabelen voor stemcode en team leeg
            //zodat de pagina niet opnieuw geladen kan worden
            //met een veranderde URL om de stem aan te passen
            Session["Stemcode"] = string.Empty;
            Session["Team"]     = string.Empty;

            //Checkt of de stemming nog actief is (om het veranderen van de URL op te vangen)
            SqlCommand CheckActief = new SqlCommand("SELECT Actief FROM Stemming WHERE Stemmingsnaam IN (SELECT StemmingsNaam FROM UC WHERE UniekeCode = '" + StemCode + "');", sqlConnection);

            //Stem toevoegen en daarbij deactiveren (een unieke code kan niet nog een keer stemmen als hij al op een project heeft gestemd
            SqlCommand CodeDeactiveren = new SqlCommand(StemToevoegen, sqlConnection);

            //Verbinding maken met database
            sqlConnection.Open();

            bool StemmingActief = Convert.ToBoolean(CheckActief.ExecuteScalar());
            if (StemmingActief == false)
            {
                //Redirect naar de inlogpagina als de stemming al afgelopen is
                Response.Redirect("Inlogpagina");
            }
            else
            {
                //Stem toevoegen en ingelogde stemcode deactiveren
                //Een unieke code kan niet opnieuw stemmen als hij al op een project gestemd heeft
                CodeDeactiveren.ExecuteNonQuery();

                //Als het aantal stemmen dat niet in een block staat groter dan 4 is, maak dan een nieuw blok aan.
                SqlCommand AantalNietInBlock = new SqlCommand("SELECT COUNT(*) FROM UC WHERE InBlock = 'False' AND GestemdOp IS NOT NULL AND  Stemmingsnaam IN (SELECT StemmingsNaam FROM UC WHERE UniekeCode = '" + StemCode + "')", sqlConnection);
                SqlCommand Stemming          = new SqlCommand("SELECT StemmingsNaam FROM UC WHERE UniekeCode = '" + StemCode + "'", sqlConnection);
                if ((int)AantalNietInBlock.ExecuteScalar() > 4)
                {
                    Blocks.MaakBlock((string)Stemming.ExecuteScalar());
                }
            }
            sqlConnection.Close();

            lbl_GestemdOp.Text = "Bedankt voor uw stem!";
            Label1.Text        = Team;
        }
    }
    protected void btn_Genereer_Click(object sender, EventArgs e)
    {
        if (txtbx_Nummer.Text == "")
        {
            lbl_Info.Text = "Vul een hoeveelheid codes in";
            vulTabel();
            Txtbx_StemmingsNaam.Text = "";
            return;
        }

        if (Txtbx_StemmingsNaam.Text == "")
        {
            lbl_Info.Text = "Vul een stemmingsnaam in";
            vulTabel();
            return;
        }

        int hoeveelheidCodes = Convert.ToInt32(txtbx_Nummer.Text);

        //verbinden met Database
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

        sqlConnection.Open();
        SqlCommand CheckStemmingsNaam      = new SqlCommand("SELECT COUNT(*) FROM UC WHERE StemmingsNaam = '" + Txtbx_StemmingsNaam.Text + "'", sqlConnection);
        SqlCommand CheckBestaandeProjecten = new SqlCommand("");
        int        StemmingBestaat         = (int)CheckStemmingsNaam.ExecuteScalar();

        if (StemmingBestaat > 0)
        {
            lbl_Info.Text = "Deze Stemming bestaat al";
            vulTabel();
        }
        else
        {
            //Minimaal 1 code
            if (hoeveelheidCodes >= 1)
            {
                //Maximaal 1000 codes
                if (hoeveelheidCodes <= 1000)
                {
                    if (Global.Projecten.Any())
                    {
                        //Maak een nieuwe stemming aan
                        SqlCommand NieuweStemming = new SqlCommand("INSERT INTO Stemming (StemmingsNaam, Actief) VALUES ('" + Txtbx_StemmingsNaam.Text + "', 'true');", sqlConnection);
                        NieuweStemming.ExecuteNonQuery();
                        for (int i = 1; i <= hoeveelheidCodes; i++)
                        {
                            //Genereer unieke codes met een lengte van 10 aan en zet deze in de database
                            SqlCommand CheckUniekeCode = new SqlCommand("INSERT INTO UC (UniekeCode, StemmingsNaam) VALUES ('" + RandomCodeGenereren.GenerateIdentifier(10).ToString() + "', '" + Txtbx_StemmingsNaam.Text + "');", sqlConnection);
                            CheckUniekeCode.ExecuteNonQuery();
                        }

                        foreach (string project in Global.Projecten)
                        {
                            //Zet de projecten in de database
                            SqlCommand MaakProjecten = new SqlCommand("INSERT INTO Project (Naam, StemmingsNaam) VALUES ('" + project + "', '" + Txtbx_StemmingsNaam.Text + "');", sqlConnection);
                            MaakProjecten.ExecuteNonQuery();
                        }

                        //Maak een genesisblock aan
                        SqlCommand BlockMaken = new SqlCommand("INSERT INTO Block (BlockData, StemmingsNaam) VALUES ('" + RandomCodeGenereren.GenerateIdentifier(50) + "', '" + Txtbx_StemmingsNaam.Text + "')", sqlConnection);
                        BlockMaken.ExecuteNonQuery();

                        //Maak de lijst met projecten leeg en ga naar het overzicht van de beheerder
                        Global.Projecten.Clear();
                        sqlConnection.Close();
                        Response.Redirect("OverzichtBeheerder");
                    }
                    else
                    {
                        lbl_Info.Text = "Een stemming moet teams hebben";
                        vulTabel();
                    }
                }
                else
                {
                    lbl_Info.Text = "Kies 1000 stemcodes of minder";
                    vulTabel();
                }
            }
            else
            {
                lbl_Info.Text = "Kies 1 of meer stemcodes";
                vulTabel();
            }
        }
        sqlConnection.Close();
    }
Beispiel #27
0
    protected void ImageButtonOkee_Click(object sender, EventArgs e)
    {
        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

        //Haalt de stemming uit de URL en het telefoonnr uit de textbox
        string Stemming     = Request.QueryString["Stemming"];
        string Telnr        = txtbx_telnr.Text;
        bool   TelNietNieuw = false;

        Nummercontrole check       = new Nummercontrole();
        SqlCommand     AlleNummers = new SqlCommand("SELECT HashTelNr FROM UC", sqlConnection);

        sqlConnection.Open();
        SqlDataAdapter da = new SqlDataAdapter(AlleNummers);
        DataTable      dt = new DataTable();

        da.Fill(dt);
        //Voor elke opgeslagen hash van een telnr
        foreach (DataRow dr in dt.Rows)
        {
            //Checkt of het telefoonnr voorkomt in de database
            if (HashGenereren.checkHash(Telnr, dr["HashTelNr"].ToString()))
            {
                TelNietNieuw = true;
            }
        }
        //Als het nummer nog niet gehasht in de database staat
        if (TelNietNieuw == false)
        {
            //Checken of een telefoonnummer wel een geldig nummer is
            if (check.Nummercheck(Convert.ToString("06" + txtbx_telnr.Text)))
            {
                //Checkt of er nog unieke codes zijn voor de gekozen stemming
                SqlCommand NieuweCodeQuery = new SqlCommand("SELECT Top 1 UniekeCode FROM UC WHERE HashTelNr IS NULL AND StemmingsNaam ='" + Stemming + "';", sqlConnection);
                string     NieuweCode      = Convert.ToString(NieuweCodeQuery.ExecuteScalar());

                if (NieuweCode != "")
                {
                    //Hasht het telefoonnummer en verbindt het met een unieke code
                    Telnr = HashGenereren.Genereer(Telnr);
                    SqlCommand NummerToevoegen = new SqlCommand("UPDATE UC SET HashTelNr = '" + Telnr + "' WHERE UniekeCode = '" + NieuweCode + "';", sqlConnection);
                    NummerToevoegen.ExecuteNonQuery();
                    sqlConnection.Close();

                    //Vult gegevens in van het e-mailadres om mailtjes te sturen naar een e-mail adres
                    //Deze mailtjes worden omgezet naar een SMS'je door het bedrijf van dit e-mailadres
                    //Deze SMS'jes worden vervolgens verstuurd naar het telefoonnummer van de gebruiker
                    string      password   = "******";
                    MailMessage mail       = new MailMessage();
                    SmtpClient  SmtpServer = new SmtpClient("smtp.gmail.com");

                    //De e-mail wordt verstuurd vanaf dit g-mail account
                    mail.From = new MailAddress("*****@*****.**");
                    //Het telefoonnummer waar naar wordt verstuurd is het telefoonnummer in de tekstbox
                    //mail.To.Add("06" + txtbx_telnr.Text + "@sms.informaxion.nl");
                    mail.To.Add("*****@*****.**");
                    mail.Subject = "2410, Winnovation";
                    mail.Body    = "Hier is uw code voor Winnovation: http://5e226d69.ngrok.io/projectenoverzicht?Stemmer=" + NieuweCode;
                    //mail.Body = "Hier is uw code voor Winnovation: http://www.winnovationexpo.nl/projectenoverzicht?Stemmer=" + NieuweCode;
                    //mail.Body = "Hier is uw code voor Winnovation: localhost:50512/projectenoverzicht?Stemmer=" + NieuweCode;

                    SmtpServer.Port        = 587;
                    SmtpServer.Credentials = new System.Net.NetworkCredential("winnovationwindesheim", password);
                    SmtpServer.EnableSsl   = true;

                    SmtpServer.Send(mail);

                    lbl_Info.Visible = true;
                    lbl_Info.Text    = "Uw code is verzonden per SMS";
                    txtbx_telnr.Text = "";
                }
                else
                {
                    lbl_Info.Visible = true;
                    lbl_Info.Text    = "Geen stemcodes beschikbaar";
                    txtbx_telnr.Text = "";
                }
            }
            else
            {
                lbl_Info.Visible = true;
                lbl_Info.Text    = "Dit nummer is ongeldig";
                txtbx_telnr.Text = "";
            }
        }
        else
        {
            lbl_Info.Visible = true;
            lbl_Info.Text    = "Dit nummer is al gebruikt";
            txtbx_telnr.Text = "";
        }
    }
Beispiel #28
0
    //Haalt de resultaten op voor de beheerder (toont zowel de winnaar als het aantal stemmen per team)
    public static string UitslagStemmingBeheerder(string Stemming)
    {
        if (GebruikBlockchain)
        {
            Blocks.Decodeer(Stemming);
        }

        DatabaseConnectie dbconnect     = new DatabaseConnectie();
        SqlConnection     sqlConnection = new SqlConnection(dbconnect.dbConnectie);

        string Uitslag = "<h1>Uitslagen van " + Stemming + "</h1></br> ";

        //Haalt de winnaar op
        SqlCommand winnaar = new SqlCommand("SELECT GestemdOp, Count(GestemdOp)AS 'AantalGestemd' FROM UC WHERE StemmingsNaam = '" + Stemming + "' GROUP BY GestemdOp ORDER BY AantalGestemd DESC;", sqlConnection);

        sqlConnection.Open();

        //Selecteert het project met de meeste stemmen
        if (GebruikBlockchain)
        {
            ////Winnaar ophalen met LINQ werkt nog niet goed
            //var maxValue = Blocks.GestemdOp.Max(x => x);
            //var Winnaar = Blocks.GestemdOp.Select(x => x == maxValue);
            ////string Winnaar = ((from x in Blocks.GestemdOp select x.Count())).Max();
            //Console.WriteLine(Winnaar);
            //Uitslag += "<h4>Winnaar:<br />" + Winnaar + "</h4><br />";

            //Haalt de winnaar op zonder blockchain (omdat met blockchain nog niet werkt):
            Uitslag += "<h4>Winnaar:<br />" + winnaar.ExecuteScalar() + "</h4><br />";
        }
        else
        {
            Uitslag += "<h4>Winnaar:<br />" + winnaar.ExecuteScalar() + "</h4><br />";
        }

        //Haalt op hoeveel unieke codes er bij deze stemming zijn aangemaakt
        SqlCommand AantalUniekeCodes = new SqlCommand("SELECT COUNT(UniekeCode) FROM UC WHERE StemmingsNaam = '" + Stemming + "'", sqlConnection);
        int        AantalCodes       = (int)AantalUniekeCodes.ExecuteScalar();

        //Haalt op hoeveel unieke codes er bij deze stemming met een telefoonnummer gelinkt zijn
        SqlCommand UitgegevenUniekeCodes = new SqlCommand("SELECT COUNT(UniekeCode) FROM UC WHERE StemmingsNaam = '" + Stemming + "' AND HashTelNr IS NOT NULL", sqlConnection);
        int        UitgegevenCodes       = (int)UitgegevenUniekeCodes.ExecuteScalar();

        //Haalt op hoe vaak er gestemd is:
        SqlCommand AantalKeerGestemd = new SqlCommand("SELECT COUNT(UniekeCode) FROM UC WHERE StemmingsNaam = '" + Stemming + "' AND GestemdOp IS NOT NULL", sqlConnection);
        int        KeerGestemd       = (int)AantalKeerGestemd.ExecuteScalar();

        Uitslag += "<h5>Voor deze stemming zijn " + AantalCodes + " unieke codes aangemaakt.<br />";
        Uitslag += "Er zijn " + UitgegevenCodes + " SMS'jes verstuurd.<br />";
        Uitslag += "Uiteindelijk is er " + KeerGestemd + " keer gestemd.<br /><h5>";

        //Gesorteerd op hoeveelheid stemmen
        SqlDataAdapter asd = new SqlDataAdapter("SELECT project.naam, Count(UC.GestemdOp) as aantal_stemmen FROM project LEFT JOIN(SELECT gestemdOp FROM UC WHERE UC.stemmingsnaam = '" + Stemming + "') as UC ON project.naam = UC.gestemdOp WHERE project.stemmingsnaam = '" + Stemming + "' GROUP BY project.naam ORDER BY aantal_stemmen DESC", sqlConnection);

        //Gesorteerd op naam
        //SqlDataAdapter asd = new SqlDataAdapter("SELECT project.naam, Count(UC.GestemdOp) as aantal_stemmen FROM project LEFT JOIN(SELECT gestemdOp FROM UC WHERE UC.stemmingsnaam = '" + Stemming + "') as UC ON project.naam = UC.gestemdOp WHERE project.stemmingsnaam = '" + Stemming + "' GROUP BY project.naam", sqlConnection);

        DataTable dt = new DataTable();

        asd.Fill(dt);

        Uitslag += "<table>";
        foreach (DataRow row in dt.Rows)
        {
            //Haalt het aantal keer dat op een project gestemd is op
            if (GebruikBlockchain)
            {
                int AantalStemmen = 0;
                AantalStemmen = (from x in Blocks.GestemdOp where x == (string)row["Naam"] select x).Count();
                Uitslag      += "<tr><td>" + row["Naam"] + "</td><td>" + AantalStemmen + "</td></tr>";
            }
            else
            {
                Uitslag += "<tr><td>" + row["Naam"] + "</td><td>" + row["aantal_stemmen"] + "</td></tr>";
            }
        }
        Uitslag += "</table>";
        sqlConnection.Close();
        //Returnt een string met daarin de winnaar en daaronder per project het aantal stemmen
        return(Uitslag);
    }