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); } }