//Lisää ehdokkaan tietokantaan //Päivittää vertailuluvun jos ehdokas on jo luotu public bool Upsert(MysqlConn conn) { string slug = Slugify(this.ToString()); string query = "SELECT * FROM c_ehdokkaat WHERE slug='" + slug + "'"; MySqlCommand cmd = conn.Query(query); var reader = cmd.ExecuteReader(); query = ""; if (reader.HasRows) { if (VertailuLuku != 0) { //query = "UPDATE c_ehdokkaat SET etunimi='"+Etunimi+"', sukunimi='"+Sukunimi+"', puolue='"+Puolue+"', aanimaara='"+Aanimaara+"', vertailuluku="+VertailuLuku+ " WHERE slug='" + slug + "'"; query = "UPDATE c_ehdokkaat SET vertailuluku=" + VertailuLuku + " WHERE slug='" + slug + "'"; } } else { query = "INSERT INTO c_ehdokkaat ( etunimi, sukunimi, puolue, aanimaara, slug ) VALUES( '" + Etunimi + "', '" + Sukunimi + "', '" + Puolue + "', " + Aanimaara + ", '" + slug + "' )"; Console.WriteLine(query); } if (query != "") { cmd = conn.Query(query); cmd.ExecuteReader(); } return(true); }
static void Main(string[] args) { MysqlConn mysql = new MysqlConn(); //mysql.CreateTable(); //Luodaan tyhjä lista ehdokkaista List <Ehdokas> ehdokkaat = new List <Ehdokas>(); //Ladataan tiedosto jossa ehdokkaat StreamReader sr = new StreamReader(@"ehdokkaat.txt", Encoding.UTF8); //Luodaan tyhjä lista puolueista Dictionary <string, Puolue> puolueet = new Dictionary <string, Puolue>(); // erotimerkki jolla splitataan rivi string sep = "\t"; Ehdokas tempEhd; //Käydään tiedosto läpi rivi kerrallaan while (sr.Peek() >= 0) { string str; string[] strArr; str = sr.ReadLine(); strArr = str.Split(sep.ToCharArray()); if (puolueet.ContainsKey(strArr[2]) == false) { //Luodaan puolue ja lisätään se puoluelistaan Puolue puolue = new Puolue(strArr[2]); puolueet.Add(strArr[2], puolue); } //Luodaan ehdokas Ehdokas ehdokas = new Ehdokas(strArr[0], strArr[1], strArr[2], int.Parse(strArr[3])); //Kasvatetaan puolueen kokonaisäänimäärää puolueet[strArr[2]].TotalVouteCount += int.Parse(strArr[3]); //Lisätään ehdokas puolueen listalle puolueet[strArr[2]].ehdokkaat.Add(ehdokas); //Lisätään ehdokas paikalliseen ehdokaslistaan ehdokkaat.Add(ehdokas); tempEhd = ehdokas; //ehdokas.Upsert(mysql); } sr.Close(); //Generoidaan ehdokkaille vertailuluvut foreach (KeyValuePair <string, Puolue> item in puolueet.OrderByDescending(x => x.Value.TotalVouteCount)) { item.Value.jaaVertailuluvut(); } //Järjestetään ehdokkaat vertailuluvun mukaan laskevaanjärjestykseen var comparer = new SortVertailulukuDescendingHelper(); ehdokkaat.Sort(comparer); //Napataan läpi päässeet ehdokkaat List <Ehdokas> valtuusto = ehdokkaat.GetRange(0, 51); //Järjestää ehdokkaat puolueittain + äänimäärän ja nimen mukaan valtuusto.Sort(); //Tulostetaan valtuusto for (int i = 0; i < valtuusto.Count; i++) { //valtuusto[i].Upsert(mysql); Console.WriteLine("{0}: {1}", (i + 1), valtuusto[i].ToString()); } //Tallennetaan valtuusto JSON tiedostoon tallennaEhdokkaat(valtuusto); Console.ReadLine(); }