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"); } }
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"); } }
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); } }
/// <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(); }
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); }
/// <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
/// <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); }
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"); } }
//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"; } }
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); }
} //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); }
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(); }
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(); }
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 />"; } } }
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"; } }
//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); }
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(); }
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"; } }
public void DatabaseConnectionTest() { bool Check = DatabaseConnectie.OpenConnection(); Assert.AreEqual(true, Check); }
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; } } }
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(); }
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 = ""; } }
//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); }