Example #1
0
 //----------------------------------------------------
 public static CDbKey CreateCDbKey(CObjetDonnee objet)
 {
     if (objet.ManageIdUniversel)
     {
         return(CDbKey.GetNewDbKeyOnUniversalIdANePasUtiliserEnDehorsDeCDbKeyAddOn(objet.IdUniversel));
     }
     if (objet is CObjetDonneeAIdNumerique)
     {
         return(CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(((CObjetDonneeAIdNumerique)objet).Id));
     }
     return(null);
 }
        public static bool EditeNomVariable(ref string strNom, ref CTypeResultatExpression typeDonnee, ref CDbKey dbKeyInitial, bool bAvecIdInitial)
        {
            CFormEditNomVariable form = new CFormEditNomVariable();

            form.m_txtNomVariable.Text = strNom;
            form.InitComboBoxType(typeDonnee != null ? typeDonnee.TypeDotNetNatif : null);
            if (typeDonnee != null)
            {
                form.m_panelType.LockEdition         = true;
                form.m_chkTableau.Checked            = typeDonnee.IsArrayOfTypeNatif;
                form.m_cmbTypeElements.SelectedValue = typeDonnee.TypeDotNetNatif;
                form.m_txtKeyInitiale.Text           = dbKeyInitial != null?dbKeyInitial.StringValue:"";
            }
            form.m_panelIdInitial.Visible = bAvecIdInitial;
            bool bResult = form.ShowDialog() == DialogResult.OK;

            if (bResult)
            {
                strNom = form.m_txtNomVariable.Text;
                if (!form.m_panelType.LockEdition)
                {
                    Type tp = (Type)form.m_cmbTypeElements.SelectedValue;
                    if (tp == null || tp == typeof(DBNull))
                    {
                        tp = null;
                    }
                    typeDonnee = new CTypeResultatExpression(
                        (Type)form.m_cmbTypeElements.SelectedValue,
                        form.m_chkTableau.Checked);
                }
                if (form.m_txtKeyInitiale != null)
                {
                    int nId = -1;
                    if (int.TryParse(form.m_txtKeyInitiale.Text, out nId))
                    {
                        dbKeyInitial = CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nId);
                    }
                    else
                    {
                        dbKeyInitial = CDbKey.CreateFromStringValue(form.m_txtKeyInitiale.Text);
                    }
                }
                else
                {
                    bResult = false;
                }
            }
            form.Dispose();
            return(bResult);
        }
        /// //////////////////////////////////////////////////
        public override CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            I2iSerializable obj = m_champ;

            result  = serializer.TraiteObject(ref obj);
            m_champ = (CDefinitionProprieteDynamique)obj;


            if (!result)
            {
                return(result);
            }

            obj    = m_expressionConditionApplication;
            result = serializer.TraiteObject(ref obj);
            if (!result)
            {
                return(result);
            }
            m_expressionConditionApplication = (C2iExpression )obj;

            if (nVersion < 1)
            {
                IList lst = new ArrayList(  );
                result = serializer.TraiteListeObjetsSimples(ref lst);
                lst    = new ArrayList(lst);
                List <CDbKey> lstKeys = new List <CDbKey>();
                foreach (int nIdentifiant in lst)
                {
                    lstKeys.Add(CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nIdentifiant));
                }
                m_listeIdentifiantsSelectionnes = new CListeCDbKey(lstKeys);
            }
            else
            {
                serializer.TraiteObject <CListeCDbKey>(ref m_listeIdentifiantsSelectionnes);
            }


            serializer.TraiteBool(ref m_bExclure);

            return(result);
        }
Example #4
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;
            CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(Process);

            result = ExpressionUtilisateur.Eval(contexteEval);

            if (!result)
            {
                return(result);
            }
            else
            {
                CDbKey keyUtilisateur = null;
                try
                {
                    //TESTDBKEYOK
                    int nId = Convert.ToInt32(result.Data);
                    keyUtilisateur = CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nId);
                }
                catch
                {
                    //TESTDBKEYTODO
                    if (result.Data != null)
                    {
                        keyUtilisateur = CDbKey.CreateFromStringValue(result.Data.ToString());
                    }
                    else
                    {
                        result.EmpileErreur(I.T("The user expression doesn't return an integer number|381"));
                        return(result);
                    }
                }
                CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(contexte.ContexteDonnee);
                if (!user.ReadIfExists(keyUtilisateur))
                {
                    result.EmpileErreur(I.T("The user @1 doesn't exist|382", keyUtilisateur.StringValue));
                    return(result);
                }
                contexte.Branche.KeyUtilisateur = keyUtilisateur;
                CSessionClient session = CSessionClient.GetSessionForIdSession(contexte.ContexteDonnee.IdSession);
                if (session != null)
                {
                    session.ChangeUtilisateur(keyUtilisateur);
                }
            }
            return(result);
        }
Example #5
0
        public CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            serializer.TraiteType(ref m_typeCible);

            int nTmp = (int)m_typeEvenement;

            serializer.TraiteInt(ref nTmp);
            m_typeEvenement = (TypeEvenement)nTmp;

            I2iSerializable objet = m_proprieteASurveiller;

            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_proprieteASurveiller = (CDefinitionProprieteDynamique)objet;

            objet  = m_formuleValeurAvant;
            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_formuleValeurAvant = (C2iExpression)objet;

            objet  = m_formuleValeurApres;
            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_formuleValeurApres = (C2iExpression)objet;


            objet  = m_formuleConditionDeclenchement;
            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_formuleConditionDeclenchement = (C2iExpression)objet;

            objet  = m_formuleDateProgramme;
            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_formuleDateProgramme = (C2iExpression)objet;

            serializer.TraiteString(ref m_strCodeHandler);

            if (nVersion >= 1)
            {
                serializer.TraiteString(ref m_strMenuManuel);
                if (nVersion < 6 && serializer.Mode == ModeSerialisation.Lecture)
                {
                    //TESTDBKEYOK les groupes pour exécution manuelle ne sont plus exploités (Avril 2014)
                    IList lst = new ArrayList();
                    serializer.TraiteListeObjetsSimples(ref lst);
                    List <CDbKey> lstIdsTemp = new List <CDbKey>();
                    foreach (int nId in lst)
                    {
                        lstIdsTemp.Add(CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nId));
                    }
                    m_lstKeysGroupesManuels = lstIdsTemp.ToArray();
                }
                else
                {
                    //TESTDBKEYTODO
                    IList lstKeysString = new ArrayList();
                    foreach (CDbKey key in m_lstKeysGroupesManuels)
                    {
                        if (key != null)
                        {
                            lstKeysString.Add(key.StringValue);
                        }
                    }
                    serializer.TraiteListeObjetsSimples(ref lstKeysString);
                    if (serializer.Mode == ModeSerialisation.Lecture)
                    {
                        List <CDbKey> lstKeys = new List <CDbKey>();
                        foreach (string strKey in lstKeysString)
                        {
                            int nId;
                            if (int.TryParse(strKey, out nId))
                            {
                                lstKeys.Add(CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nId));
                            }
                            else
                            {
                                lstKeys.Add(CDbKey.CreateFromStringValue(strKey));
                            }
                            m_lstKeysGroupesManuels = lstKeys.ToArray();
                        }
                    }
                }
            }
            if (nVersion >= 2)
            {
                serializer.TraiteInt(ref m_nOrdreExecution);
            }
            if (nVersion >= 3)
            {
                serializer.TraiteString(ref m_strIdEvenementSpecifique);
            }
            if (nVersion >= 4)
            {
                serializer.TraiteBool(ref m_bHideProgress);
            }
            else
            {
                m_bHideProgress = false;
            }
            if (nVersion >= 5)
            {
                int nNbContextes = m_contextesException.Count;
                serializer.TraiteInt(ref nNbContextes);
                switch (serializer.Mode)
                {
                case ModeSerialisation.Ecriture:
                    foreach (string strContexte in m_contextesException)
                    {
                        string strCtx = strContexte;
                        serializer.TraiteString(ref strCtx);
                    }
                    break;

                case ModeSerialisation.Lecture:
                    m_contextesException = new HashSet <string>();
                    for (int i = 0; i < nNbContextes; i++)
                    {
                        string strCtx = "";
                        serializer.TraiteString(ref strCtx);
                        m_contextesException.Add(strCtx);
                    }
                    break;
                }
            }

            return(result);
        }
Example #6
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] listeParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CDbKey dbKeyIdChamp    = null;
                object valeurRetournee = null;
                //TESTDBKEYOK : le premier paramètre peut être un Id ou un UniversalId de champ
                if (listeParametres.Length == 2)
                {
                    if (listeParametres[0] is int)
                    {
                        int nIdChamp = (int)listeParametres[0];
                        dbKeyIdChamp = CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nIdChamp);
                    }
                    else
                    {
                        dbKeyIdChamp = CDbKey.CreateFromStringValue((string)listeParametres[0]);
                    }

                    valeurRetournee = listeParametres[1];
                }

                if (listeParametres.Length == 1)
                {
                    //1 seul paramètre, ce doit être une expression variable avec une variable champ
                    C2iExpressionChamp exChamp = Parametres2i[0] as C2iExpressionChamp;
                    if (exChamp != null)
                    {
                        CDefinitionProprieteDynamiqueChampCustom def = exChamp.DefinitionPropriete as CDefinitionProprieteDynamiqueChampCustom;
                        if (def != null)
                        {
                            dbKeyIdChamp = def.DbKeyChamp;
                        }
                    }
                    valeurRetournee = listeParametres[0];
                }
                if (valeurRetournee == null || dbKeyIdChamp == null)
                {
                    result.Data = "";
                    return(result);
                }

                CContexteDonnee contexteDonnee = (CContexteDonnee)ctx.GetObjetAttache(typeof(CContexteDonnee));
                if (contexteDonnee == null)
                {
                    contexteDonnee = new CContexteDonnee(CSessionClient.GetSessionUnique().IdSession, true, false);
                    ctx.AttacheObjet(typeof(CContexteDonnee), contexteDonnee);
                }
                CChampCustom champ = new CChampCustom(contexteDonnee);
                if (champ.ReadIfExists(dbKeyIdChamp))
                {
                    if (!champ.IsChoixParmis())
                    {
                        result.Data = valeurRetournee.ToString();
                    }
                    else
                    {
                        foreach (CValeurChampCustom valeur in champ.ListeValeurs)
                        {
                            if (valeur.Value.Equals(valeurRetournee))
                            {
                                result.Data = valeur.Display;
                                return(result);
                            }
                        }
                    }
                }
                result.Data = "";
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }