public void enregistrerTransferts(DataTable oTable) { try { if (checkTransferts(oTable)) { using (FifaManagerEphecEntities ctx = new FifaManagerEphecEntities(_Connection)) { //transforme la table en vue et applique un filtre pour n'avoir que les lignes modifiées DataView oView = oTable.DefaultView; oView.RowStateFilter = DataViewRowState.ModifiedCurrent; foreach (DataRowView row in oView) { //récupère l'id du joueur Guid joueurId = new JoueursService().GetJoueurs(row["Joueur :"].ToString()).joueurId; DateTime dateTransfert = (DateTime)row["Date du transfert :"]; //mets fin au précedent transfert si il existe et rajoute un jour à la date du transfert if (row["Date arrivee :"].ToString() != "" && row["Equipe :"].ToString() != "") { ctx.Transferts_UpdateDateFin(joueurId, (DateTime)row["Date arrivee :"], dateTransfert, DateTime.Now); dateTransfert = dateTransfert.AddDays(1); } //crée un nouveau transfert if (row["combo"].ToString() != "") { Guid equipeInId = new EquipesService().getEquipe(row["combo"].ToString()).equipeId; ctx.Tansferts_Add(joueurId, equipeInId, dateTransfert, DateTime.Now); } } using (TransactionScope scope = new TransactionScope()) { ctx.SaveChanges(); scope.Complete(); } } } } catch (Exception ex) { if (ex.InnerException != null && ex.InnerException is SqlException) { TechnicalError oErreur = new TechnicalError((SqlException)ex.InnerException); throw oErreur; } else { throw ex; } } }