/// <summary> /// Metod som hämtar grupper. /// </summary> private void hamtaGrupper() { DataTable svarGrp; postgres sokning = new postgres(); svarGrp = sokning.sqlFråga(sokning.vilkenSokning(false, false, false), "gruppNy"); // hämtar sökning efter träningsgrupper if (svarGrp.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarGrp.Rows[0][1].ToString(); } else { List <traningsgrupp> nyTraningsgruppLista = new List <traningsgrupp>(); for (int i = 0; i < svarGrp.Rows.Count; i++) { traningsgrupp traningsgruppRatt = new traningsgrupp() { namn = svarGrp.Rows[i]["namn"].ToString(), grupp_id = (int)svarGrp.Rows[i]["grupp_id"] }; nyTraningsgruppLista.Add(traningsgruppRatt); } lbxTraningsgrupper.DataSource = nyTraningsgruppLista; lbxTraningsgrupper.DisplayMember = "nyaGrupper"; tbSvar.Text = sokOk; } }
/// <summary> /// Metod som ändrar en deltagas närvaro. /// </summary> private void andraNarvaro() { postgres sokning = new postgres(); sokning.startDatum = dtpFran.Value; sokning.slutDatum = dtpSlutDatum.Value; sokning.narvaro = narvaro; sokning.pnr = personnummer; sokning.deltagit = deltagit; sokning.enkelGrupp = grupp; string narvaroSvar = sokning.sqlNonQuery(sokning.vilkenSokning(false, false, false), "andraNarvaro"); // sqlNonquery som ändrar närvaron. tbSvar.Text = narvaroSvar; }
/// <summary> /// hämtar gruppmedlemmar till medlemslistboxen /// </summary> public void hamtaGruppmedlemmar() { List <string> gruppLista = new List <string>(); foreach (traningsgrupp selectedItem in lbxTraningsgrupper.SelectedItems) { gruppLista.Add(selectedItem.namn); } DataTable svarNarvaro; postgres sokning = new postgres(); sokning.grupp = gruppLista; svarNarvaro = sokning.sqlFråga(sokning.vilkenSokning(false, false, false), "hamtaGruppmedlemmar"); // hämtar sökning efter träningsgrupper if (svarNarvaro.Columns[0].ColumnName.Equals("error")) { _tbSvar.Text = svarNarvaro.Rows[0][1].ToString(); } else { // här får man lägga in kod för att reda ut vilken typ av objekt o lista man vill lägga resultatet i och var datan sedan spottas ut List <gruppmedlemmar> nyNarvarolista = new List <gruppmedlemmar>(); for (int i = 0; i < svarNarvaro.Rows.Count; i++) { gruppmedlemmar narvarolistaRatt = new gruppmedlemmar() { Förnamn = svarNarvaro.Rows[i]["fnamn"].ToString(), Efternamn = svarNarvaro.Rows[i]["enamn"].ToString(), Personnummer = svarNarvaro.Rows[i]["pnr"].ToString(), medlemId = svarNarvaro.Rows[i]["medlem_id"].ToString(), }; nyNarvarolista.Add(narvarolistaRatt); _tbSvar.Text = sokOk; } lbxGruppmedlemmar.DataSource = nyNarvarolista; lbxGruppmedlemmar.DisplayMember = "redanGruppMedlemmar"; } }
/// <summary> /// Metod som länker ihop medlem med en vald grupp. /// </summary> private void lankaGruppOchMedlem() { foreach (gruppmedlemmar selectedItem in lbxMedlemmar.SelectedItems) { nyMedlem = selectedItem.medlemId; } foreach (traningsgrupp selectedItem in lbxTraningsgrupper.SelectedItems) { nyGrupp = selectedItem.grupp_id.ToString(); } postgres sokning = new postgres(); sokning.nyMedlem = nyMedlem; sokning.enkelGrupp = nyGrupp; string narvaroSvar = sokning.sqlNonQuery(sokning.vilkenSokning(false, false, false), "laggTillMedlem"); // hämtar sökning efter träningsgrupper tbSvar.Text = narvaroSvar; }
/// <summary> /// Metod som hämtar medlemmar som finns i aktuell grupp.. /// </summary> public void hamtaGruppmedlemmar() { List <string> gruppLista = new List <string>(); foreach (traningsgrupp selectedItem in lbxTraningsgrupper.SelectedItems) { gruppLista.Add(selectedItem.namn); } DataTable svarNarvaro; postgres sokning = new postgres(); sokning.grupp = gruppLista; svarNarvaro = sokning.sqlFråga(sokning.vilkenSokning(false, false, false), "hamtaGruppmedlemmar"); if (svarNarvaro.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarNarvaro.Rows[0][1].ToString(); } else { List <gruppmedlemmar> nyNarvarolista = new List <gruppmedlemmar>(); for (int i = 0; i < svarNarvaro.Rows.Count; i++) { gruppmedlemmar narvarolistaRatt = new gruppmedlemmar() { Förnamn = svarNarvaro.Rows[i]["fnamn"].ToString(), Efternamn = svarNarvaro.Rows[i]["enamn"].ToString(), Personnummer = svarNarvaro.Rows[i]["pnr"].ToString(), medlemId = svarNarvaro.Rows[i]["medlem_id"].ToString(), }; nyNarvarolista.Add(narvarolistaRatt); tbSvar.Text = sokOk; } lbxGruppmedlemmar.DataSource = nyNarvarolista; lbxGruppmedlemmar.DisplayMember = "redanGruppMedlemmar"; } }
/// <summary> /// Sökning görs efter de grupper som /// en viss ledare ansvarar för. (Stöd för Multiselect) /// </summary> private void sokgrupper() { DataTable sokningResultat; vilkaParam(); // sökparameterkontroll string soktyp = "grupp"; List <string> ledarLista = new List <string>(); foreach (gruppledare selectedItem in _lbxLedare.SelectedItems) { ledarLista.Add(selectedItem.medlemId.ToString()); } postgres s = startaPostgres(); s.ledare = ledarLista; sokningResultat = s.sqlFråga(s.vilkenSokning(sokDatInterv, sokGrupp, sokLedare), soktyp); if (sokningResultat.Columns[0].ColumnName.Equals("error")) { _tbFeedback.Text = sokningResultat.Rows[0][1].ToString(); } else { List <traningsgrupp> grupplista = new List <traningsgrupp>(); for (int y = 0; y < sokningResultat.Rows.Count; y++) { traningsgrupp grupp = new traningsgrupp(); grupp.namn = sokningResultat.Rows[y]["namn"].ToString(); grupplista.Add(grupp); } _lbxGrupper.DataSource = grupplista; _lbxGrupper.DisplayMember = "namn"; _tbFeedback.Text = sokOk; } }
/// <summary> /// Sökning görs efter de ledare som har /// inbokade pass inom den valda tiden. /// </summary> private void sokledare() { DataTable sokningResultat; vilkaParam(); // sökparameterkontroll string soktyp = "ledare"; postgres s = startaPostgres(); // sökning i db görs här, svaret skickas tillbaka in i tabellen sokningResultat som har datatypen DataTable sokningResultat = s.sqlFråga(s.vilkenSokning(sokDatInterv, sokGrupp, sokLedare), soktyp); if (sokningResultat.Columns[0].ColumnName.Equals("error")) { _tbFeedback.Text = sokningResultat.Rows[0][1].ToString(); } else { List <gruppledare> ledarlista = new List <gruppledare>(); gruppledare ledare; for (int i = 0; i < sokningResultat.Rows.Count; i++) { ledare = new gruppledare() { medlemId = sokningResultat.Rows[i]["ledare"].ToString(), förnamn = sokningResultat.Rows[i]["fnamn"].ToString(), efternamn = sokningResultat.Rows[i]["enamn"].ToString() }; ledarlista.Add(ledare); } _lbxLedare.DataSource = ledarlista; _lbxLedare.DisplayMember = "forOchEftNamn"; _tbFeedback.Text = sokOk; } }
/// <summary> /// Metod som kallar på sökmetoden från postgres-klassen. Söker efter träningsgrupper. /// </summary> private void sokGrp() { DataTable svarGrp; vilkaParam(); postgres sokning = new postgres(); sokning.startDatum = dtpFran.Value; sokning.slutDatum = dtpSlutDatum.Value; svarGrp = sokning.sqlFråga(sokning.vilkenSokning(sokDatInterv, sokGrupp, false), "grupp"); // hämtar sökning efter träningsgrupper if (svarGrp.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarGrp.Rows[0][1].ToString(); } else { List <traningsgrupp> nyTraningsgruppLista = new List <traningsgrupp>(); for (int i = 0; i < svarGrp.Rows.Count; i++) { traningsgrupp traningsgruppRatt = new traningsgrupp() { namn = svarGrp.Rows[i]["namn"].ToString(), tid = svarGrp.Rows[i]["starttid"].ToString(), datum = svarGrp.Rows[i]["datum"].ToString() }; nyTraningsgruppLista.Add(traningsgruppRatt); } lbxGrupper.DataSource = nyTraningsgruppLista; lbxGrupper.DisplayMember = "traningsgrupps"; tbSvar.Text = sokOk; } }
/// <summary> /// Metod som kallar på sökmetoden från postgres-klassen. Söker efter närvarande och lägger till checkboxar i nya kolumner. /// </summary> private void sokNarvaro() { List <string> gruppLista = new List <string>(); foreach (traningsgrupp selectedItem in lbxGrupper.SelectedItems) { gruppLista.Add(selectedItem.namn); } DataTable svarNarvaro; vilkaParam(); postgres sokning = new postgres(); sokning.grupp = gruppLista; sokning.startDatum = dtpFran.Value; sokning.slutDatum = dtpSlutDatum.Value; svarNarvaro = sokning.sqlFråga(sokning.vilkenSokning(sokDatInterv, sokGrupp, false), "narvaro"); // hämtar sökning efter närvaro. if (svarNarvaro.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarNarvaro.Rows[0][1].ToString(); } else { List <narvarolista> nyNarvarolista = new List <narvarolista>(); for (int i = 0; i < svarNarvaro.Rows.Count; i++) { narvarolistaRatt = new narvarolista() { Förnamn = svarNarvaro.Rows[i]["fnamn"].ToString(), Efternamn = svarNarvaro.Rows[i]["enamn"].ToString(), Personnummer = svarNarvaro.Rows[i]["pnr"].ToString(), narvaro = svarNarvaro.Rows[i]["narvarolista_id"].ToString(), gruppnamn = svarNarvaro.Rows[i]["namn"].ToString(), medlemId = svarNarvaro.Rows[i]["medlem_id"].ToString(), deltagit = (bool)svarNarvaro.Rows[i]["deltagit"] }; nyNarvarolista.Add(narvarolistaRatt); tbSvar.Text = sokOk; } dgvRegistreraNarvaro.DataSource = nyNarvarolista; for (int i = 3; i < 10; i++) { dgvRegistreraNarvaro.Columns[i].Visible = false; } svarNarvaro = sokning.sqlFråga(sokning.vilkenSokning(sokDatInterv, sokGrupp, false), "jamfor"); //Sökning som hämtar en lista att jämföra med. if (svarNarvaro.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarNarvaro.Rows[0][1].ToString(); } else { jamforLista = new List <narvarolista>(); for (int i = 0; i < svarNarvaro.Rows.Count; i++) { narvarolista jamforning = new narvarolista() { Förnamn = svarNarvaro.Rows[i]["fnamn"].ToString(), Efternamn = svarNarvaro.Rows[i]["enamn"].ToString(), Personnummer = svarNarvaro.Rows[i]["pnr"].ToString(), narvaro = svarNarvaro.Rows[i]["narvarolista_id"].ToString(), gruppnamn = svarNarvaro.Rows[i]["namn"].ToString(), deltagit = (bool)svarNarvaro.Rows[i]["deltagit"], datum = svarNarvaro.Rows[i]["datum"].ToString(), medlemId = svarNarvaro.Rows[i]["medlem_id"].ToString(), start = svarNarvaro.Rows[i]["starttid"].ToString(), s**t = svarNarvaro.Rows[i]["sluttid"].ToString() }; jamforLista.Add(jamforning); } } svarNarvaro = sokning.sqlFråga(sokning.vilkenSokning(sokDatInterv, sokGrupp, false), "unikagrupper"); //Sökning som hämtar unika grupper. if (svarNarvaro.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarNarvaro.Rows[0][1].ToString(); } else { List <narvarolista> unikaGrupperLista = new List <narvarolista>(); for (int i = 0; i < svarNarvaro.Rows.Count; i++) { narvarolista unikaGrupper = new narvarolista() { narvaro = svarNarvaro.Rows[i]["narvarolista_id"].ToString(), gruppnamn = svarNarvaro.Rows[i]["namn"].ToString(), datum = svarNarvaro.Rows[i]["datum"].ToString(), start = svarNarvaro.Rows[i]["starttid"].ToString(), s**t = svarNarvaro.Rows[i]["sluttid"].ToString(), }; unikaGrupperLista.Add(unikaGrupper); } int kolumn = 10; List <narvarolista> _narvarolistan; //Här under läggs nya rutor till för varje tillfälle. foreach (narvarolista item in unikaGrupperLista) { kolNamn = item.gruppnamn + "\n" + "Datum: " + Convert.ToDateTime(item.datum).ToShortDateString() + "\nTid: " + Convert.ToDateTime(item.start).ToShortTimeString() + "-" + Convert.ToDateTime(item.s**t).ToShortTimeString(); DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn(); checkboxColumn.Name = kolNamn; checkboxColumn.DataPropertyName = "nyaKol"; dgvRegistreraNarvaro.Columns.Add(checkboxColumn); //lägger till checkboxar i de nya kolumnerna. _narvarolistan = new List <narvarolista>(); int index = 0; _narvarolistan.Clear(); //Här börjar jämförelsen mellan de olika listorna. foreach (narvarolista narvarande in nyNarvarolista) { foreach (narvarolista jamfor in jamforLista) { if (narvarande.gruppnamn == item.gruppnamn && narvarande.narvaro == item.narvaro) { if (narvarande.medlemId == jamfor.medlemId && item.narvaro == jamfor.narvaro && jamfor.deltagit == true && item.gruppnamn == jamfor.gruppnamn) { bool test2 = _narvarolistan.Contains(narvarande); if (!test2) //Om testet går igenom får aktuell kolumn en checkbox som är true. { dgvRegistreraNarvaro.Rows[index].Cells[kolumn].Value = true; _narvarolistan.Add(narvarande); break; } } //om inte får den ett värde som är false. else if (narvarande.medlemId == jamfor.medlemId && item.narvaro == jamfor.narvaro && jamfor.deltagit == false && item.gruppnamn == jamfor.gruppnamn) { dgvRegistreraNarvaro.Rows[index].Cells[kolumn].Value = false; } } else // om testet inte gick igenom får cellen även en ny sorts checkbox. { // checkboxarna simuleras som disablade för att illustrera att medlemmar ej tillhör en viss grupp. DataGridViewCell cell = dgvRegistreraNarvaro.Rows[index].Cells[kolumn]; DataGridViewCheckBoxCell chkCell = cell as DataGridViewCheckBoxCell; chkCell.Value = false; chkCell.FlatStyle = FlatStyle.Flat; chkCell.Style.ForeColor = Color.White; cell.ReadOnly = true; } } index++; } kolumn++; } } } }
/// <summary> /// Sökning görs efter de individer som tillhör /// en viss grupp. (Stöd för Multiselect) /// </summary> private void sokNarvaro() { DataTable sokningResultat; vilkaParam(); // sökparameterkontroll string soktyp = "narvaro"; List <string> gruppLista = new List <string>(); foreach (traningsgrupp selectedItem in lbxGrupper.SelectedItems) { gruppLista.Add(selectedItem.namn.ToString()); } postgres s = startaPostgres(); s.grupp = gruppLista; sokningResultat = s.sqlFråga(s.vilkenSokning(sokDatInterv, sokGrupp, sokLedare), soktyp); if (sokningResultat.Columns[0].ColumnName.Equals("error")) { _tbFeedback.Text = sokningResultat.Rows[0][1].ToString(); } else { List <narvarolista> narvarolistan = new List <narvarolista>(); for (int y = 0; y < sokningResultat.Rows.Count; y++) { narvarolista narvaro = new narvarolista(); narvaro.Förnamn = sokningResultat.Rows[y]["fnamn"].ToString(); narvaro.Efternamn = sokningResultat.Rows[y]["enamn"].ToString(); narvaro.Personnummer = sokningResultat.Rows[y]["pnr"].ToString(); narvaro.medlemId = sokningResultat.Rows[y]["medlem_id"].ToString(); narvarolistan.Add(narvaro); } _dgvRapport.DataSource = narvarolistan; _dgvRapport.ReadOnly = true; int hej = _dgvRapport.Columns.Count - 1; //for (int i = 2; i < 10; i++) //{ // dgvRapport.Columns[i].Visible = false; //} for (int i = hej; i > 2; i--) { _dgvRapport.Columns.RemoveAt(i); } //ny sökning för att ta fram en jämförelselista mot narvarolista soktyp = "jamfor"; sokningResultat = s.sqlFråga(s.vilkenSokning(sokDatInterv, sokGrupp, sokLedare), soktyp); if (sokningResultat.Columns[0].ColumnName.Equals("error")) { _tbFeedback.Text = sokningResultat.Rows[0][1].ToString(); } else { jamforLista = new List <narvarolista>(); for (int y = 0; y < sokningResultat.Rows.Count; y++) { narvarolista jamforning = new narvarolista(); jamforning.Förnamn = sokningResultat.Rows[y]["fnamn"].ToString(); jamforning.Efternamn = sokningResultat.Rows[y]["enamn"].ToString(); jamforning.Personnummer = sokningResultat.Rows[y]["pnr"].ToString(); jamforning.medlemId = sokningResultat.Rows[y]["medlem_id"].ToString(); jamforning.narvaro = sokningResultat.Rows[y]["narvarolista_id"].ToString(); jamforning.gruppnamn = sokningResultat.Rows[y]["namn"].ToString(); jamforning.datum = sokningResultat.Rows[y]["datum"].ToString(); jamforning.start = sokningResultat.Rows[y]["starttid"].ToString(); jamforning.s**t = sokningResultat.Rows[y]["sluttid"].ToString(); jamforning.deltagit = (bool)sokningResultat.Rows[y]["deltagit"]; jamforLista.Add(jamforning); } } //ny sökning för att ta fram unika grupper soktyp = "unikagrupper"; sokningResultat = s.sqlFråga(s.vilkenSokning(sokDatInterv, sokGrupp, sokLedare), soktyp); if (sokningResultat.Columns[0].ColumnName.Equals("error")) { _tbFeedback.Text = sokningResultat.Rows[0][1].ToString(); } else { List <narvarolista> unikaGrupperLista = new List <narvarolista>(); for (int y = 0; y < sokningResultat.Rows.Count; y++) { narvarolista unikaGrupper = new narvarolista(); unikaGrupper.narvaro = sokningResultat.Rows[y]["narvarolista_id"].ToString(); unikaGrupper.gruppnamn = sokningResultat.Rows[y]["namn"].ToString(); unikaGrupper.datum = sokningResultat.Rows[y]["datum"].ToString(); unikaGrupper.start = sokningResultat.Rows[y]["starttid"].ToString(); unikaGrupper.s**t = sokningResultat.Rows[y]["sluttid"].ToString(); unikaGrupperLista.Add(unikaGrupper); } string kolNamn = ""; kolumn = 3; summa = 0; summering.Clear(); int antalDeltagare = 0; // lägger till kolumner för träningstillfälle List <narvarolista> _narvarolistan; foreach (narvarolista item in unikaGrupperLista) { kolNamn = " " + item.gruppnamn + "\n" + " Datum: " + Convert.ToDateTime(item.datum).ToShortDateString() + "\n Tid: " + Convert.ToDateTime(item.start).ToShortTimeString() + "-" + Convert.ToDateTime(item.s**t).ToShortTimeString(); _dgvRapport.Columns.Add(kolNamn, kolNamn); _narvarolistan = new List <narvarolista>(); int index = 0; antalDeltagare = 0; _narvarolistan.Clear(); foreach (narvarolista narvarande in narvarolistan) { foreach (narvarolista jamfor in jamforLista) { if (narvarande.medlemId == jamfor.medlemId && item.narvaro == jamfor.narvaro && jamfor.deltagit == true && item.gruppnamn == jamfor.gruppnamn) { bool test2 = _narvarolistan.Contains(narvarande); if (!test2) { _dgvRapport.Rows[index].Cells[kolumn].Value = "x"; _narvarolistan.Add(narvarande); antalDeltagare++; break; } } } index++; } kolumn++; skickaTillSummering(kolNamn, antalDeltagare, false); } skickaTillSummering(kolNamn, antalDeltagare, true); } _tbFeedback.Text = sokOk; } }