public override object Invoke(object objetAppelle, params object[] parametres) { IElementAEO elt = objetAppelle as IElementAEO; IElementAEO source = parametres[0] as IElementAEO; string strRacine = parametres.Length > 1 && parametres[1] != null? parametres[1].ToString() : ""; CUtilElementAEO.CopyAndReplaceEOS(elt, source, strRacine); return(true); }
/// //////////////////////////////////////////////////////// protected override CResultAErreur MyExecute(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; try { CListeObjetsDonnees liste = new CListeObjetsDonnees(contexte.ContexteDonnee, typeof(CActeur)); CFiltreData filtre = new CFiltreDataAvance( CActeur.c_nomTable, "Has(" + CEOplanifiee_Acteur.c_nomTable + "." + CEOplanifiee_Acteur.c_champId + ")"); liste.Filtre = filtre; foreach (CActeur acteur in liste) { //Il suffit de modifier l'acteur pour qu'on recalcule ces eos CUtilElementAEO.UpdateEOSInCurrentContext(acteur); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte) { CResultAErreur result = base.TraitementAvantSauvegarde(contexte); if (!result) { return(result); } DataTable dt = contexte.Tables[CSite.c_nomTable]; ArrayList rows = new ArrayList(dt.Rows); foreach (DataRow row in rows) { CSite site = new CSite(row); result = SObjetAFilsACoordonneeServeur.TraitementAvantSauvegarde(site); //Verification des Eos pour la localisation par coordonnee if (row.RowState != DataRowState.Deleted && site.TypeSite != null && row.RowState == DataRowState.Modified) { CTypeEntiteOrganisationnelle typeEO = site.TypeSite.TypeEntiteOrganisationnelleDeCoordonnee; if (typeEO != null && site.EOdeCoordonnee == null) { List <CEntiteOrganisationnelle> lsteos = CUtilElementAEO.GetToutesEOs(site); List <CEntiteOrganisationnelle> lsteosRacine = new List <CEntiteOrganisationnelle>(); List <CEntiteOrganisationnelle> lsteosFilles = new List <CEntiteOrganisationnelle>(); //Recuperation des EOs du niveau Racine foreach (CEntiteOrganisationnelle eo in lsteos) { if (eo.TypeEntite == typeEO) { lsteosRacine.Add(eo); } } foreach (CEntiteOrganisationnelle eo in lsteos) { if (eo.TypeEntite != typeEO) { foreach (CEntiteOrganisationnelle eoracine in lsteosRacine) { if (eo.IsChildOf(eoracine)) { lsteosFilles.Add(eo); } } } } int totalPoss = lsteosRacine.Count + lsteosFilles.Count; if (totalPoss > 1) { result.EmpileErreur(I.T("Several organisational entities can affect this site coordinate : please select the default one|30001")); } else if (totalPoss == 1 && lsteosRacine.Count == 1) { site.EOdeCoordonnee = lsteosRacine[0]; } else if (totalPoss == 1 && lsteosFilles.Count == 1) { site.EOdeCoordonnee = lsteosFilles[0]; } } } if (!result) { return(result); } } return(result); }
public CResultAErreur SetAllOrganizationalEntities(int[] nIdsOE) { return(CUtilElementAEO.SetAllOrganizationalEntities(this, nIdsOE)); }
public CResultAErreur SupprimerEO(int nIdEO) { return(CUtilElementAEO.SupprimerEO(this, nIdEO)); }
public CResultAErreur AjouterEO(int nIdEO) { return(CUtilElementAEO.AjouterEO(this, nIdEO)); }
public void CompleteRestriction(CRestrictionUtilisateurSurType restriction) { CUtilElementAEO.CompleteRestriction(this, restriction); }
public void RefreshCodesEOS() { CUtilElementAEO.UpdateEOs(this); }