//---------------------------------------------------------------------------- /// <summary> /// Utilisée pour la recherche de références externes liées à cette Action /// </summary> /// <param name="contexteGetRef"></param> /// <returns></returns> public object[] GetReferencesExternesExplicites(CContexteGetReferenceExterne contexteGetRef) { if (contexteGetRef != null) { CContexteDonnee contexte = (CContexteDonnee)contexteGetRef.GetObjetAttache(typeof(CContexteDonnee)); if (contexte != null) { if (ExpressionEntiteDestination != null) { Type typeDestination = ExpressionEntiteDestination.TypeDonnee.TypeDotNetNatif; if ((typeof(IElementAChamps)).IsAssignableFrom(typeDestination)) { CRoleChampCustom role = CRoleChampCustom.GetRoleForType(typeDestination); Type[] typeDefinisseursChamps = role.TypeDefinisseurs; if (typeDefinisseursChamps.Length > 0) { CObjetDonneeAIdNumeriqueAuto definisseur = (CObjetDonneeAIdNumeriqueAuto)Activator.CreateInstance(typeDefinisseursChamps[0], new object[] { contexte }); if (DbKeyDefinisseurChampsCustomEntiteDestination != null) { if (definisseur.ReadIfExists(DbKeyDefinisseurChampsCustomEntiteDestination)) { return new object[] { definisseur } } ; } } } } } } return(new object[] { }); } }
//---------------------------------------------------------------------------------- private void InitPanelDefinisseurChamps() { if (ActionCopierEntite.ExpressionEntiteDestination != null) { Type typeDestination = ActionCopierEntite.ExpressionEntiteDestination.TypeDonnee.TypeDotNetNatif; if ((typeof(IElementAChamps)).IsAssignableFrom(typeDestination)) { m_panelDefinisseurChamps.Visible = !m_chkFullCopy.Checked; CContexteDonnee ctx = ActionCopierEntite.Process.ContexteDonnee; CRoleChampCustom role = CRoleChampCustom.GetRoleForType(typeDestination); Type[] typeDefinisseursChamps = role.TypeDefinisseurs; if (typeDefinisseursChamps.Length > 0) { // Init la textBoxSelectionne m_txtSelectDefinisseurChampsCustom.InitForSelect(typeDefinisseursChamps[0], "Libelle", false); CObjetDonneeAIdNumeriqueAuto objet = (CObjetDonneeAIdNumeriqueAuto)Activator.CreateInstance(typeDefinisseursChamps[0], new object[] { ctx }); if (ActionCopierEntite.DbKeyDefinisseurChampsCustomEntiteDestination != null) { if (objet.ReadIfExists(ActionCopierEntite.DbKeyDefinisseurChampsCustomEntiteDestination)) { m_txtSelectDefinisseurChampsCustom.ElementSelectionne = objet; } else { m_txtSelectDefinisseurChampsCustom.ElementSelectionne = null; } } else { m_txtSelectDefinisseurChampsCustom.ElementSelectionne = null; } } } else { m_panelDefinisseurChamps.Visible = false; } } }
public CResultAErreur Execute(int nIdSession, System.Collections.Hashtable valeursParametres) { CResultAErreur resErreur = CResultAErreur.True; string strType = (string)valeursParametres[c_parametreTypeAEnvoyer]; if (strType == null) { resErreur.EmpileErreur("Le type d'élément à envoyer n'est pas renseigné"); return(resErreur); } Type typeElement = CActivatorSurChaine.GetType(strType); if (typeElement == null) { resErreur.EmpileErreur("Le type d'élément à envoyer n'est pas correct (" + strType + ")"); return(resErreur); } if (!(valeursParametres[c_parametreIdElement] is int)) { resErreur.EmpileErreur("L'id de l'élément n'est pas correct"); return(resErreur); } DataSet ds = CUtilClientTiag.GetDataSetStructure(); using (CContexteDonnee contexteDonnee = new CContexteDonnee(nIdSession, true, false)) { CObjetDonneeAIdNumeriqueAuto objet = (CObjetDonneeAIdNumeriqueAuto)Activator.CreateInstance(typeElement, contexteDonnee); if (!objet.ReadIfExists((int)valeursParametres[c_parametreIdElement])) { resErreur.EmpileErreur("L'élément demandé n'existe pas (" + strType + " / " + valeursParametres[c_parametreIdElement].ToString() + ")"); return(resErreur); } CUtilClientTiag.FillDataSet((IElementAInterfaceTiag)objet, ds); } CServiceDistantTiag service = new CServiceDistantTiag("tcp://127.0.0.1:8182"); //TiagService.TiagService service = new TiagService.TiagService(); resErreur = CResultAErreur.True; CResultDataSet result = service.OpenSession(c_strServerKey); int nIdSessionTiag = -1; try { nIdSessionTiag = (int)result.Data; result = service.OnModifieDonnees(nIdSessionTiag, ds); } catch (Exception e) { resErreur.EmpileErreur(new CErreurException(e)); } finally { service.CloseSession(nIdSessionTiag); } if (!result) { foreach (string strErreur in result.GetErreurs()) { resErreur.EmpileErreur(strErreur); } } return(resErreur); }