Beispiel #1
0
        //----------------------------------------------------------------------------
        /// <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[] { });
        }
    }
Beispiel #2
0
        //----------------------------------------------------------------------------------
        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;
                }
            }
        }
Beispiel #3
0
        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);
        }