private void BtnClosePools_Click(object sender, RoutedEventArgs e) { //TODO PL chiamata alla "validaEliminatorie" in cui deve essere gestito il motore tramite DB bool?result = new MessageBoxCustom("Delete all final phases?", MessageType.Warning, MessageButtons.OkCancel).ShowDialog(); if (result.Value) { //save all pools for safety if (SaveAllPools()) { SqlDal_Pools.DeleteAllPahases(_tournamentId, _disciplineId); SetPhasesIndex(); Window validaAtleti = new CheckResult(caricaGironi.IdTorneo, caricaGironi.IdDisciplina, atletiAmmessiEliminatorie); validaAtleti.Closing += new CancelEventHandler(creaEliminatorie_FormClosed); validaAtleti.Show(); } else { MessageBox.Show("Si è verificato un errore durante il salvataggio dei gironi \r\nContattare un amministratore", "ERRORE Applicazione", MessageBoxButton.OK, MessageBoxImage.Error); } } }
private void DeleteNextPhases() { switch (_currentTransition) { case (int)PhasesType.Finals_32: SqlDal_Pools.DeleteAllPahases(_idTorneo, _idDisciplina); break; case (int)PhasesType.Finals_16: SqlDal_Pools.DeleteAfterSedicesimi(_idTorneo, _idDisciplina); break; case (int)PhasesType.Finals_8: SqlDal_Pools.DeleteAfterOttavi(_idTorneo, _idDisciplina); break; case (int)PhasesType.Finals_4: SqlDal_Pools.DeleteAfterQuarti(_idTorneo, _idDisciplina); break; case (int)PhasesType.SemiFinals: SqlDal_Pools.DeleteAfterSeimifinali(_idTorneo, _idDisciplina); break; default: break; } }
public static void SaveFinal4Pool(int idTorneo, int idDisciplina, int pool, int semifinalPool, DataGrid dataGridPool) { int posizione = 1; List <AtletaEliminatorie> listAtleti = new List <AtletaEliminatorie>(); foreach (MatchEntity match in dataGridPool.Items) { AtletaEliminatorie a = new AtletaEliminatorie(); a.IdAtleta = (match.PuntiRosso > match.PuntiBlu) ? match.IdRosso : match.IdBlu; SqlDal_Pools.UpdateQualificati8(idTorneo, idDisciplina, pool, posizione, match.IdRosso, match.PuntiRosso, match.PuntiBlu); SqlDal_Pools.UpdateQualificati8(idTorneo, idDisciplina, pool, posizione, match.IdBlu, match.PuntiBlu, match.PuntiRosso); a.IdTorneo = idTorneo; a.idDisciplina = idDisciplina; a.Posizione = posizione; a.Campo = semifinalPool; a.PuntiFatti = 0; a.PuntiSubiti = 0; listAtleti.Add(a); posizione++; } SqlDal_Pools.InsertSemifinali(listAtleti); }
public static void SaveSemiFinalPool(int idTorneo, int idDisciplina, int pool, DataGrid dataGridPool) { int posizione = 1; List <AtletaEliminatorie> listAtleti = new List <AtletaEliminatorie>(); foreach (MatchEntity match in dataGridPool.Items) { AtletaEliminatorie winner = new AtletaEliminatorie(); AtletaEliminatorie looser = new AtletaEliminatorie(); winner.IdAtleta = (match.PuntiRosso > match.PuntiBlu) ? match.IdRosso : match.IdBlu; looser.IdAtleta = (match.PuntiRosso > match.PuntiBlu) ? match.IdBlu : match.IdRosso; //DeleteOldValues(pool, idTorneo, idDisciplina, match.IdRosso); //DeleteOldValues(pool, idTorneo, idDisciplina, match.IdBlu); SqlDal_Pools.UpdateSemifinali(idTorneo, idDisciplina, pool, posizione, match.IdRosso, match.PuntiRosso, match.PuntiBlu); SqlDal_Pools.UpdateSemifinali(idTorneo, idDisciplina, pool, posizione, match.IdBlu, match.PuntiBlu, match.PuntiRosso); CreateFinalsRecords(idTorneo, idDisciplina, posizione, listAtleti, winner, looser); } SqlDal_Pools.InsertFinali(listAtleti); }
public void LoadFields(int idTorneo, int idDisciplina) { var allAtleti = SqlDal_Pools.GetQuarti(idTorneo, idDisciplina); if (allAtleti.Where(x => x.Campo > 0).ToList().Count() == 0) { if (allAtleti.Count == 0) { return; } LoadAsFirstValidPhase(allAtleti); } else { poolOne = SqlDal_Pools.GetQuarti(idTorneo, idDisciplina, 1); poolTwo = SqlDal_Pools.GetQuarti(idTorneo, idDisciplina, 2); poolThree = SqlDal_Pools.GetQuarti(idTorneo, idDisciplina, 3); poolFour = SqlDal_Pools.GetQuarti(idTorneo, idDisciplina, 4); LoadPool(poolOne, dataGridPoolOne); LoadPool(poolTwo, dataGridPoolTwo); LoadPool(poolThree, dataGridPoolThree); LoadPool(poolFour, dataGridPoolFour); } _loaded = true; }
private static void DeleteOldValues(int idTorneo, int idDisciplina) { SqlDal_Pools.EliminaOttaviByCampo(1, idTorneo, idDisciplina); SqlDal_Pools.EliminaOttaviByCampo(2, idTorneo, idDisciplina); SqlDal_Pools.EliminaOttaviByCampo(3, idTorneo, idDisciplina); SqlDal_Pools.EliminaOttaviByCampo(4, idTorneo, idDisciplina); }
private void CaricaGironiCreati(int idTorneo, int idDisciplina) { _dicFighter = new Dictionary <string, int>(); numeroGironi = SqlDal_Pools.GetNumeroGironiByTorneoDisciplina(idTorneo, idDisciplina); if (numeroGironi > 0) { gironi = new List <List <AtletaEntity> >(); gironi = SqlDal_Pools.GetGironiSalvati(idTorneo, idDisciplina); numeroAtletiTorneoDisciplina = gironi.SelectMany(list => list).Distinct().Count(); gironiIncontri = new List <List <MatchEntity> >(); tabControlPool.Items.Clear(); Int32 idGirone = 1; foreach (List <AtletaEntity> poolList in gironi) { List <MatchEntity> matchList = null; //TODO eliminabile visto che sono già sul DB if (poolList.Count == 4) { matchList = Helper.ElaborateT4(poolList); } else if (poolList.Count == 5) { matchList = Helper.ElaborateT5(poolList); } else if (poolList.Count == 6) { matchList = Helper.ElaborateT6(poolList); } if (matchList != null) { foreach (MatchEntity i in matchList) { SqlDal_Pools.CaricaPunteggiEsistentiGironiIncontri(idTorneo, idDisciplina, i, idGirone); } gironiIncontri.Add(matchList); string title = "Girone " + (tabControlPool.Items.Count + 1).ToString(); tabControlPool.Items.Add(ElaboraTab(idTorneo, idDisciplina, title, poolList, matchList, tabControlPool.Items.Count + 1)); } idGirone++; } EnablePageControls(); } else { MessageBox.Show("Si è verificato un errore durante il recupero delle informazioni sul numero dei gironi \r\nContattare un amministratore", "ERRORE Applicazione", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void buttonConferma_Click(object sender, EventArgs e) { if (CountSelectedRowInDataGrid() != atletiAmmessiEliminatorie) { MessageBox.Show("Il numero di atleti selezionati non è " + atletiAmmessiEliminatorie + ": controllare la lista", "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { List <AtletaEliminatorie> listaQualificati = new List <AtletaEliminatorie>(); int posizione = 1; foreach (DataGridViewRow r in dataGridView1.Rows) { if (((bool)r.Cells[0].Value == true) && posizione <= atletiAmmessiEliminatorie) { listaQualificati.Add(new AtletaEliminatorie() { IdAtleta = (int)r.Cells[4].Value, IdTorneo = (int)r.Cells[1].Value, idDisciplina = (int)r.Cells[2].Value, Posizione = posizione } ); posizione++; } } SqlDal_Pools.DeleteAllPahases(idTorneo, idDisciplina); if (atletiAmmessiEliminatorie == 32) { SqlDal_Pools.InsertSedicesimi(listaQualificati); } else if (atletiAmmessiEliminatorie == 16) { SqlDal_Pools.InsertOttavi(listaQualificati); } else if (atletiAmmessiEliminatorie == 8) { SqlDal_Pools.InsertQuarti(listaQualificati); } else if (atletiAmmessiEliminatorie == 4) { SqlDal_Pools.InsertSemifinali(SetCampoForSemifinali(listaQualificati)); } SqlDal_Pools.ConcludiGironi(idTorneo, idDisciplina); //va fatta la lista di output per la generazione degli incontri //in realtà qui salvo semplicemente i dati sui Qualificati 'atletiAmmessiEliminatorie' //poi la form1 li carica e genera gli incontri diretti this.Close(); } }
private void CaricaAtletiPostGironi() { List <GironiConclusi> gironiConclusi = SqlDal_Pools.GetClassificaGironi(idTorneo, idDisciplina); for (int i = 0; i < atletiAmmessiEliminatorie; i++) { gironiConclusi[i].Qualificato = true; } dataGridResult.ItemsSource = gironiConclusi; }
private void ManagePhasesButtons() { btnLoadPhases.IsEnabled = true; btnOpen32th.IsEnabled = false; //for nnow is always disabled btnOpen16th.IsEnabled = SqlDal_Pools.CountPhasesMatchs(_tournamentId, _disciplineId, PhasesManager.Decode(PhasesType.Finals_16)) == 0 ? false : true; btnOpen8th.IsEnabled = SqlDal_Pools.CountPhasesMatchs(_tournamentId, _disciplineId, PhasesManager.Decode(PhasesType.Finals_8)) == 0 ? false : true; btnOpen4th.IsEnabled = SqlDal_Pools.CountPhasesMatchs(_tournamentId, _disciplineId, PhasesManager.Decode(PhasesType.Finals_4)) == 0 ? false : true; btnOpenSemifinal.IsEnabled = SqlDal_Pools.CountPhasesMatchs(_tournamentId, _disciplineId, PhasesManager.Decode(PhasesType.SemiFinals)) == 0 ? false : true; btnOpenFinal.IsEnabled = SqlDal_Pools.CountPhasesMatchs(_tournamentId, _disciplineId, PhasesManager.Decode(PhasesType.Finals)) == 0 ? false : true; }
private void FullFillDatagrid() { List <OutputRisultatiTorneo> risultatiGironi = SqlDal_Report.GetExportGironiTorneo(_idTorneo, _idDisciplina); if (risultatiGironi != null) { dataGridViewGironi.DataSource = risultatiGironi.ToArray(); //lblTotal.Text = "Totale Incontri Gironi : " + risultatiGironi.Count; } List <GironiConclusi> gironiConclusi = SqlDal_Pools.GetClassificaGironi(_idTorneo, _idDisciplina); if (gironiConclusi != null) { dataGridViewPostGironi.DataSource = gironiConclusi.ToArray(); dataGridViewPostGironi.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(dataGridViewPostGironi_DataBindingComplete); } List <OutputRisultatiEliminatorieTorneo> risultatiSedicesimi = SqlDal_Report.GetExportSedicesimiTorneo(_idTorneo, _idDisciplina); if (risultatiSedicesimi != null) { dataGridViewSedicesimi.DataSource = risultatiSedicesimi.ToArray(); } List <OutputRisultatiEliminatorieTorneo> risultatiOttavi = SqlDal_Report.GetExportOttaviTorneo(_idTorneo, _idDisciplina); if (risultatiOttavi != null) { dataGridViewOttavi.DataSource = risultatiOttavi.ToArray(); } List <OutputRisultatiEliminatorieTorneo> risultatiQuarti = SqlDal_Report.GetExportQuartiTorneo(_idTorneo, _idDisciplina); if (risultatiQuarti != null) { dataGridViewQuarti.DataSource = risultatiQuarti.ToArray(); } List <OutputRisultatiEliminatorieTorneo> risultatiSemifinali = SqlDal_Report.GetExportSemifinaliTorneo(_idTorneo, _idDisciplina); if (risultatiSemifinali != null) { dataGridViewSemifinali.DataSource = risultatiSemifinali.ToArray(); } List <OutputRisultatiEliminatorieTorneo> risultatiFinali = SqlDal_Report.GetExportFinaliTorneo(_idTorneo, _idDisciplina); if (risultatiFinali != null) { dataGridViewFinali.DataSource = risultatiFinali.ToArray(); } }
public static Tuple <string, string> SaveFinalPool(int idTorneo, int idDisciplina, int pool, DataGrid dataGridPool) { List <AtletaEliminatorie> listAtleti = new List <AtletaEliminatorie>(); int round = 1; int vittorieRosso = 0; int vittorieBlu = 0; string winner = ""; string looser = ""; foreach (MatchEntity match in dataGridPool.Items) { if (match.PuntiRosso > match.PuntiBlu) { vittorieRosso++; } else if (match.PuntiRosso < match.PuntiBlu) { vittorieBlu++; } SqlDal_Pools.UpdateFinali(idTorneo, idDisciplina, pool, round, match.IdRosso, match.PuntiRosso, match.PuntiBlu); SqlDal_Pools.UpdateFinali(idTorneo, idDisciplina, pool, round, match.IdBlu, match.PuntiBlu, match.PuntiRosso); round++; } var m = ((MatchEntity)dataGridPool.Items[0]); if (vittorieRosso > vittorieBlu) { winner = SqlDal_Fighters.GetAtletaById(m.IdRosso).Asd + " - " + m.CognomeRosso + " " + m.NomeRosso; looser = SqlDal_Fighters.GetAtletaById(m.IdBlu).Asd + " - " + m.CognomeBlu + " " + m.NomeBlu; } else if (vittorieBlu > vittorieRosso) { looser = SqlDal_Fighters.GetAtletaById(m.IdRosso).Asd + " - " + m.CognomeRosso + " " + m.NomeRosso; winner = SqlDal_Fighters.GetAtletaById(m.IdBlu).Asd + " - " + m.CognomeBlu + " " + m.NomeBlu; } else { winner = ""; looser = ""; } return(new Tuple <string, string>(winner, looser)); }
private void LoadMatchs(int idTorneo, int idDisciplina) { List <AtletaEliminatorie> allAtleti = SqlDal_Pools.GetSedicesimi(idTorneo, idDisciplina); poolOne = new List <AtletaEliminatorie>(); poolTwo = new List <AtletaEliminatorie>(); poolThree = new List <AtletaEliminatorie>(); poolFour = new List <AtletaEliminatorie>(); if (allAtleti.Count == 0) { return; } LoadMatchesByPool(allAtleti); }
private void CaricaAtletiPostGironi() { List <GironiConclusi> gironiConclusi = SqlDal_Pools.GetClassificaGironi(idTorneo, idDisciplina); for (int i = 0; i < atletiAmmessiEliminatorie; i++) { gironiConclusi[i].Qualificato = true; } labelStatus.Text = " Selezionati " + atletiAmmessiEliminatorie + " Atleti per la fase successiva"; dataGridView1.DataSource = gironiConclusi.ToArray(); dataGridView1.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(dataGridView1_DataBindingComplete); dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); }
public void LoadFields(int idTorneo, int idDisciplina) { this._idTorneo = idTorneo; this._idDisciplina = idDisciplina; poolOne = SqlDal_Pools.GetFinali(idTorneo, idDisciplina, 1); poolTwo = SqlDal_Pools.GetFinali(idTorneo, idDisciplina, 2); LoadPool(poolOne, dataGridPoolOne); LoadPool(poolTwo, dataGridPoolTwo); if (poolOne.Select(x => x.PuntiFatti > 0).ToList().Count > 0 || poolTwo.Select(x => x.PuntiFatti > 0).ToList().Count > 0) { btnPrintResult.IsEnabled = true; SaveFields(idTorneo, idDisciplina); } _loaded = true; }
private void CreateNextPhase(List <AtletaEliminatorie> listaQualificati) { if (atletiAmmessiEliminatorie == 32) { SqlDal_Pools.InsertSedicesimi(listaQualificati); } else if (atletiAmmessiEliminatorie == 16) { SqlDal_Pools.InsertOttavi(listaQualificati); } else if (atletiAmmessiEliminatorie == 8) { SqlDal_Pools.InsertQuarti(listaQualificati); } else if (atletiAmmessiEliminatorie == 4) { SqlDal_Pools.InsertSemifinali(SetCampoForSemifinali(listaQualificati)); } }
private void btnSaveResult_Click(object sender, RoutedEventArgs e) { if (_currentSelectedItems != atletiAmmessiEliminatorie) { System.Windows.Forms.MessageBox.Show("Il numero di atleti selezionati non è " + atletiAmmessiEliminatorie + ": controllare la lista", "ERRORE", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } else { List <AtletaEliminatorie> listaQualificati = new List <AtletaEliminatorie>(); int posizione = 1; foreach (GironiConclusi a in dataGridResult.Items) { if (a.Qualificato) { listaQualificati.Add(new AtletaEliminatorie() { IdAtleta = a.IdAtleta, IdTorneo = a.IdTorneo, idDisciplina = a.IdDisciplina, Posizione = posizione } ); posizione++; } } CreateNextPhase(listaQualificati); SqlDal_Pools.ConcludiGironi(idTorneo, idDisciplina); WindowCheckResult = true; this.Close(); } }
public static void SaveTournamentPool( int idTorneo, int idDisciplina, int poolIndex, List <int> idAtleti, int numeroIncontriAdPersonam, DataGrid dataGridPool) { foreach (Int32 atleta in idAtleti) { RisultatiIncontriGironi res = new RisultatiIncontriGironi(); res.idAtleta = atleta; foreach (MatchEntity match in dataGridPool.Items) { bool doppiaMorte = match.DoppiaMorte; if (!SqlDal_Pools.UpdateGironiIncontri(idTorneo, idDisciplina, poolIndex, match.IdRosso, match.PuntiRosso, match.IdBlu, match.PuntiBlu, doppiaMorte)) { new MessageBoxCustom("Error during pool savings", MessageType.Error, MessageButtons.Ok); return; } if (match.IdRosso == atleta) //se sono l'atleta a "sinistra" { if (doppiaMorte) { res.Sconfitte++; res.PuntiSubiti += Math.Abs(3 - match.PuntiRosso); } else { if (match.PuntiRosso > match.PuntiBlu) { res.Vittorie++; } else if (match.PuntiRosso < match.PuntiBlu) { res.Sconfitte++; } else { if (match.PuntiRosso > match.PuntiBlu) { res.Vittorie++; } else if (match.PuntiRosso < match.PuntiBlu) { res.Sconfitte++; } } res.PuntiFatti += match.PuntiRosso; res.PuntiSubiti += match.PuntiBlu; } } else if (match.IdBlu == atleta) //se sono l'atleta a "destra" { if (doppiaMorte) { res.Sconfitte++; res.PuntiSubiti += Math.Abs(3 - match.PuntiBlu); } else { if ((match.PuntiBlu > match.PuntiRosso) && (match.PuntiBlu >= 3)) { res.Vittorie++; } else if ((match.PuntiBlu < match.PuntiRosso) && (match.PuntiRosso >= 3)) { res.Sconfitte++; } else { if (match.PuntiBlu > match.PuntiRosso) { res.Vittorie++; } else if (match.PuntiBlu < match.PuntiRosso) { res.Sconfitte++; } } res.PuntiFatti += match.PuntiBlu; res.PuntiSubiti += match.PuntiRosso; } } } int delpaP = res.PuntiFatti - res.PuntiSubiti; res.NumeroIncontriDisputati = numeroIncontriAdPersonam; res.Differenziale = (Double)(delpaP + res.Vittorie) / res.NumeroIncontriDisputati; //salvare res in Gironi: //per ogni atleta , torneo e disciplina salvo i punti fatti, subiti, le vittorie ed il differenziale SqlDal_Pools.UpdateGironi(res, idTorneo, idDisciplina, poolIndex); } }
private void creaGironiAndLoad(int idTorneo, int idDisciplina) { _dicFighter = new Dictionary <string, int>(); //loadToolStripMenuItem.Enabled = false; //Non permetto più di caricare i dati (in teoria va fatto meglio) //partecipantiTorneo = CaricaAtleti(); // i dati in lettura vanno fatti caricando la disciplina dal DB (divisione per disciplina) //se sono in presenza degli assoluti, per ora, carico i dati ordinati solo per ranking e senza random dei nomi all'interno delle ASD //partecipantiTorneo = assoluti == false ? // Helper.GetAtletiTorneoVsDisciplina(idTorneo, idDisciplina, categoria) : // Helper.GetAtletiTorneoVsDisciplinaAssoluti(idTorneo, idDisciplina, categoria); SqlDal_Pools.DeletePoolsAndMatches(idTorneo, idDisciplina); var partecipantiTorneo = SqlDal_Tournaments.GetAtletiTorneoVsDisciplinaAssoluti(idTorneo, idDisciplina); //TODO: da parametrizzare bool rankingEnabled = partecipantiTorneo.Sum(x => x.Ranking) != 0; numeroGironi = SqlDal_Pools.GetNumeroGironiByTorneoDisciplina(idTorneo, idDisciplina); if (numeroGironi > 0) { gironi = new List <List <AtletaEntity> >(); //Setting delle strutture dati for (int i = 0; i < numeroGironi; i++) { //Per ogni girone creo la lista, vuota al momento, dei partecipanti al girone stesso gironi.Add(new List <AtletaEntity>()); } //Inserisco ogni partecipante del torneo dentro la struttura dati dei gironi //e dell'albero nella posizione corrispondente //(l'abero deve essere visualizzato via WEB : quando ci clicchi ti deve far vedere la lista e lo stato degli incontri al suo interno int count = 0; if (!rankingEnabled) { foreach (AtletaEntity a in partecipantiTorneo) //ciclo sui gironi, e sulla lista atleti partecipanti al torneo, inserendo ogni atleta in un girone diverso, e poi rifacendo il giro { gironi[count].Add(a); if (count == numeroGironi - 1) { count = 0; } else { count++; } } } else { //qui ci va il codice per il calcolo dei gironi con gli assoluti int fasceAssoluti = 4; int atletiPerfascia = partecipantiTorneo.Count / fasceAssoluti; #region inizializziani 4 fasce List <AtletaEntity> primaFascia = new List <AtletaEntity>(); List <AtletaEntity> secondaFascia = new List <AtletaEntity>(); List <AtletaEntity> terzaFascia = new List <AtletaEntity>(); List <AtletaEntity> quartaFascia = new List <AtletaEntity>(); #endregion //primo quarto primaFascia.AddRange(partecipantiTorneo.GetRange(0, atletiPerfascia)); //secondo quarto secondaFascia.AddRange(partecipantiTorneo.GetRange(atletiPerfascia, atletiPerfascia)); //terzo quarto terzaFascia.AddRange(partecipantiTorneo.GetRange(2 * atletiPerfascia, atletiPerfascia)); //tutti i restanti quartaFascia.AddRange(partecipantiTorneo.GetRange(3 * atletiPerfascia, atletiPerfascia + (partecipantiTorneo.Count - (4 * atletiPerfascia)))); foreach (List <AtletaEntity> g in gironi) { //inserisco il primo atleta di ogni fascia nel girone i-esimo if (primaFascia.Count > 0) { g.Add(primaFascia.ElementAt(0)); } if (secondaFascia.Count > 0) { g.Add(secondaFascia.ElementAt(0)); } if (terzaFascia.Count > 0) { g.Add(terzaFascia.ElementAt(0)); } if (quartaFascia.Count > 0) { g.Add(quartaFascia.ElementAt(0)); } //elimino quell'atleta dalla lista dei papabili if (primaFascia.Count > 0) { primaFascia.RemoveAt(0); } if (secondaFascia.Count > 0) { secondaFascia.RemoveAt(0); } if (terzaFascia.Count > 0) { terzaFascia.RemoveAt(0); } if (quartaFascia.Count > 0) { quartaFascia.RemoveAt(0); } } //gestisco eventuali orfani : GIRONI da 5 //per sicurezza controllo tutte le fasce ma sarà solo la quarta ad avere degli orfani //che andaranno inseriti nei gironi già popolati a partire dal primo if (primaFascia.Count > 0 || secondaFascia.Count > 0 || terzaFascia.Count > 0 || quartaFascia.Count > 0) { foreach (List <AtletaEntity> g in gironi) { if (primaFascia.Count > 0) { g.Add(primaFascia.ElementAt(0)); primaFascia.RemoveAt(0); } else if (secondaFascia.Count > 0) { g.Add(secondaFascia.ElementAt(0)); secondaFascia.RemoveAt(0); } else if (terzaFascia.Count > 0) { g.Add(terzaFascia.ElementAt(0)); terzaFascia.RemoveAt(0); } else if (quartaFascia.Count > 0) { g.Add(quartaFascia.ElementAt(0)); quartaFascia.RemoveAt(0); } else { break; } } } } ///TODO ///per ogni girone devo creare la lsita corrispondente degli scontri ///- nuova struttura dati dei gironi/scontri che ogni posizione contiene una lista di incontri ///- tali incontri vanno salvati sul DB ///- tali incontri dovranno, in futuro, essere anche visualizzati via WEB /// gironiIncontri = new List <List <MatchEntity> >(); tabControlPool.Items.Clear(); Int32 idGirone = 1; foreach (List <AtletaEntity> g in gironi) { List <MatchEntity> matchList = null; if (g.Count == 4) { matchList = Helper.ElaborateT4(g); } else if (g.Count == 5) { matchList = Helper.ElaborateT5(g); } else if (g.Count == 6) { matchList = Helper.ElaborateT6(g); } gironiIncontri.Add(matchList); string title = "Girone " + (tabControlPool.Items.Count + 1).ToString(); tabControlPool.Items.Add(ElaboraTab(idTorneo, idDisciplina, title, g, matchList, tabControlPool.Items.Count + 1)); //TODO l'inserimento va fatto solo se già non è stato fatto, altrimenti vanno eliminati TUTTI i dati SqlDal_Pools.InserisciGironiIncontri(idTorneo, idDisciplina, matchList, idGirone); foreach (AtletaEntity a in g) { SqlDal_Pools.InsertAtletaInGirone(creaGironi.IdTorneo, creaGironi.IdDisciplina, idGirone, a.IdAtleta); } idGirone++; } EnablePageControls(); } else { MessageBox.Show("Si è verificato un errore durante il recupero delle informazioni sul numero dei gironi \r\nContattare un amministratore", "ERRORE Applicazione", MessageBoxButton.OK, MessageBoxImage.Error); } }
private static void DeleteOldValues(int pool, int idTorneo, int idDisciplina, int fighterId) { SqlDal_Pools.EliminaSemifinaliByCampo(pool, idTorneo, idDisciplina, fighterId); }