///////////////////////////////////////////////////////////////// public static CResultAErreur Delete(CListeObjetsDonnees liste, bool bDansContexteCourant) { CResultAErreur result = CanDelete(liste); if (!result) { return(result); } CContexteDonnee contexte = liste.ContexteDonnee; if (liste.Count == 0) { return(result); } bool bEditAuto = !(contexte.IsEnEdition) && !contexte.IsModeDeconnecte && !bDansContexteCourant; if (bEditAuto) { bEditAuto = contexte.BeginModeDeconnecte(); } try { foreach (CObjetDonneeAIdNumerique obj in liste.ToArrayList()) { result = obj.BeforeDelete(); if (!result) { return(result); } } result = DoDeleteInterneACObjetDonneeNePasUtiliserSansBonneRaison(liste, bDansContexteCourant); if (result) { if (bEditAuto) { result = contexte.CommitModifsDeconnecte(); } } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); result.EmpileErreur(I.T("Delete error|157")); } finally { if (bEditAuto && !result) { contexte.CancelModifsEtEndModeDeconnecte(); } } return(result); }
public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte) { CResultAErreur result = base.TraitementAvantSauvegarde(contexte); if (!result) { return(result); } DataTable table = contexte.Tables[GetNomTable()]; bool bOldMode = contexte.IsModeDeconnecte; if (!bOldMode) { contexte.BeginModeDeconnecte(); } ArrayList lst = new ArrayList(table.Rows); foreach (DataRow row in lst) { if (row.RowState == DataRowState.Deleted) { CRelationDossierSuivi_Element relation = new CRelationDossierSuivi_Element(row); relation.VersionToReturn = DataRowVersion.Original; if (relation.RelationParametre_TypeElement.SuppressionAutomatique && relation.DossierSuivi.Row.RowState != DataRowState.Deleted) { bool bIsRemplace = false; foreach (CRelationDossierSuivi_Element rel in relation.DossierSuivi.RelationsElements) { if (rel.RelationParametre_TypeElement.Id == relation.RelationParametre_TypeElement.Id) { bIsRemplace = true; break; } } if (!bIsRemplace) { result = relation.DossierSuivi.Delete(); if (!result) { return(result); } } } } } if (!bOldMode) { contexte.EndModeDeconnecteSansSauvegardeEtSansReject(); } return(result); }
/// <summary> /// Force l'appartenance des groupes comme définit dans la base AD /// </summary> /// <returns></returns> public CResultAErreur SynchroniseGroupesAD( ) { CResultAErreur result = CResultAErreur.True; CAdGroup[] adGroups = CAdGroup.GetGroups(IdSession); using (CContexteDonnee contexte = new CContexteDonnee(IdSession, true, false)) { contexte.BeginModeDeconnecte(); CListeObjetsDonnees liste = new CListeObjetsDonnees(contexte, typeof(CGroupeActeur)); CFiltreData filtre = new CFiltreData(CGroupeActeur.c_champGroupeWindowsCorrespondant + "<>@1", ""); liste.Filtre = filtre; if (result) { contexte.CommitModifsDeconnecte(); } } return(result); }
/// ////////////////////////////////////////////////////////////// public CResultAErreur Supprimer(ArrayList listeElementsASupprimer) { using (CWaitCursor waiter = new CWaitCursor()) { CResultAErreur result = CResultAErreur.True; if (listeElementsASupprimer.Count <= 0) { return(result); } string strListeIds = ""; CObjetDonneeAIdNumeriqueAuto objetPourSuppressionGlobale = null; //Crée une liste de tous les ids éléments à supprimer try { foreach (CObjetDonneeAIdNumeriqueAuto objet in listeElementsASupprimer) { strListeIds += objet.Id.ToString() + ","; if (objetPourSuppressionGlobale == null) { objetPourSuppressionGlobale = objet; } } strListeIds = strListeIds.Substring(0, strListeIds.Length - 1); using (CContexteDonnee contexteToDelete = new CContexteDonnee(objetPourSuppressionGlobale.ContexteDonnee.IdSession, true, false)) { result = contexteToDelete.SetVersionDeTravail(objetPourSuppressionGlobale.ContexteDonnee.IdVersionDeTravail, true); if (!result) { return(result); } contexteToDelete.BeginModeDeconnecte(); CListeObjetsDonnees liste = new CListeObjetsDonnees(contexteToDelete, objetPourSuppressionGlobale.GetType(), false); liste.Filtre = new CFiltreData( objetPourSuppressionGlobale.GetChampId() + " in (" + strListeIds + ")"); result = CObjetDonneeAIdNumeriqueAuto.Delete(liste); if (!result) { contexteToDelete.CancelModifsEtEndModeDeconnecte(); result.EmpileErreur(I.T("Error while deleting element|30032")); return(result); } else { result = contexteToDelete.CommitModifsDeconnecte(); } } } catch { foreach (CObjetDonnee objet in listeElementsASupprimer) { result = objet.Delete(); if (!result) { CSc2iWin32DataClient.ContexteCourant.CancelModifsEtEndModeDeconnecte(); result.EmpileErreur(I.T("Error while deleting element|30032")); break; } } if (result) { result = CSc2iWin32DataClient.ContexteCourant.CommitModifsDeconnecte(); } } return(result); } }