コード例 #1
0
        //-----------------------------------------------------------------------------
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur  result    = CResultAErreur.True;
            CContexteDonnee ctxDonnee = null;

            if (ctx.ObjetSource is IObjetAContexteDonnee)
            {
                ctxDonnee = ((IObjetAContexteDonnee)ctx.ObjetSource).ContexteDonnee;
            }
            if (ctxDonnee == null)
            {
                ctxDonnee = ctx.GetObjetAttache(typeof(CContexteDonnee)) as CContexteDonnee;
            }
            if (ctxDonnee == null)
            {
                ctxDonnee = CContexteDonneeSysteme.GetInstance();
            }
            CNommageEntite nommage = new CNommageEntite(ctxDonnee);

            //TESTDBKEYOK
            if (nommage.ReadIfExists(m_keyNommageEntite)) //&& nommage.NomFort == m_strNom)
            {
                result.Data = nommage.GetObjetNomme();
            }
            else if (nommage.ReadIfExists(new CFiltreData(CNommageEntite.c_champNomFort + "=@1",
                                                          m_strNom)))
            {
                result.Data = nommage.GetObjetNomme();
            }
            return(result);
        }
コード例 #2
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CContexteDonnee       contexteDonnee = null;
                IObjetAContexteDonnee objAContexte   = ctx.ObjetSource as IObjetAContexteDonnee;
                if (objAContexte != null)
                {
                    contexteDonnee = objAContexte.ContexteDonnee;
                }
                if (valeursParametres.Length > 1 && valeursParametres[1] is IObjetAContexteDonnee)
                {
                    contexteDonnee = ((IObjetAContexteDonnee)valeursParametres[1]).ContexteDonnee;
                }
                if (contexteDonnee == null)
                {
                    contexteDonnee = ctx.GetObjetAttache(typeof(CContexteDonnee)) as CContexteDonnee;
                }

                if (contexteDonnee == null)
                {
                    result.EmpileErreur(I.T("Can not find any context to execute process|20013"));
                    return(result);
                }
                int?nIdProcess = valeursParametres[0] as int?;
                if (nIdProcess == null)
                {
                    result.EmpileErreur(I.T("First parameters of start process should be an integer|20014"));
                    return(result);
                }
                CProcessInDb process = new CProcessInDb(contexteDonnee);
                if (!process.ReadIfExists(nIdProcess.Value))
                {
                    result.EmpileErreur(I.T("Can not find process @1|20015", nIdProcess.Value.ToString()));
                    return(result);
                }
                object target = null;
                if (valeursParametres.Length > 1)
                {
                    target = valeursParametres[1];
                }
                result = CProcessEnExecutionInDb.StartProcessClient(
                    process.Process,
                    target,
                    contexteDonnee,
                    null);
            }
            catch
            {
                result.EmpileErreur(I.T("Error in StartProcess|20016"));
            }
            return(result);
        }
コード例 #3
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur     result = CResultAErreur.True;
            CInterrogateurSnmp agent  = ctx.GetObjetAttache(typeof(CInterrogateurSnmp)) as CInterrogateurSnmp;

            if (agent == null)
            {
                agent = new CInterrogateurSnmp();
                ctx.AttacheObjet(typeof(CInterrogateurSnmp), agent);
            }
            result.Data = agent;
            return(result);
        }
コード例 #4
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] listeParametres)
        {
            CResultAErreur  result         = CResultAErreur.True;
            CContexteDonnee contexteDonnee = (CContexteDonnee)ctx.GetObjetAttache(typeof(CContexteDonnee));

            if (contexteDonnee != null)
            {
                result.Data = contexteDonnee.IdModificationContextuelle;
            }
            else
            {
                result.Data = "";
            }
            return(result);
        }
コード例 #5
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] listeParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CContexteDonnee contexteDonnee = (CContexteDonnee)ctx.GetObjetAttache(typeof(CContexteDonnee));
                if (contexteDonnee == null)
                {
                    if (ctx.ObjetSource != null && ctx.ObjetSource is IObjetAContexteDonnee)
                    {
                        contexteDonnee = ((IObjetAContexteDonnee)ctx.ObjetSource).ContexteDonnee;
                    }
                    else
                    {
                        contexteDonnee = new CContexteDonnee(CSessionClient.GetSessionUnique().IdSession, true, false);
                    }
                    ctx.AttacheObjet(typeof(CContexteDonnee), contexteDonnee);
                }

                /*//Cherche un objet donnée dans le contexte d'évaluation pour pouvoir
                 * //avoir un contexte de donnee;
                 * if ( !(ctx.ObjetSource is CObjetDonnee) )
                 * {
                 *  result.EmpileErreur("Impossible de récupérer une donnée de production si la source de la formule n'est pas un objet donnee");
                 *  return result;
                 * }
                 * CContexteDonnee contexte = ((CObjetDonnee)ctx.ObjetSource).ContexteDonnee;*/
                bool bHasNoReadInDb           = listeParametres[0] is bool;
                bool bNePasLireEnBase         = bHasNoReadInDb ? (bool)listeParametres[0] : false;
                int  nStartParam              = bHasNoReadInDb ? 1 : 0;
                CTypeDonneeCumulee typeDonnee = new CTypeDonneeCumulee(contexteDonnee);
                if (!typeDonnee.ReadIfExists(new CFiltreData(CTypeDonneeCumulee.c_champCode + "=@1",
                                                             listeParametres[0 + nStartParam].ToString())))
                {
                    result.EmpileErreur(I.T("The cumulated data type @1 does not exist|218", listeParametres[0 + nStartParam].ToString()));
                    return(result);
                }
                CListeObjetsDonnees liste  = new CListeObjetsDonnees(contexteDonnee, typeof(CDonneeCumulee));
                CFiltreData         filtre = new CFiltreData(
                    CTypeDonneeCumulee.c_champId + "=@1", typeDonnee.Id);
                //Indice de la clé
                int nCle = 0;
                CParametreDonneeCumulee parametre = typeDonnee.Parametre;
                for (int nParam = nStartParam + 2; nParam < listeParametres.Length; nParam++)
                {
                    if (listeParametres[nParam] != null)
                    {
                        CCleDonneeCumulee cle = parametre.GetChampCle(nCle);
                        while ((cle == null || cle.Champ == "") && nCle < CParametreDonneeCumulee.c_nbChampsCle)
                        {
                            nCle++;
                            cle = parametre.GetChampCle(nCle);
                        }
                        if (nCle > CParametreDonneeCumulee.c_nbChampsCle)
                        {
                            break;
                        }
                        else
                        {
                            if (cle.Champ != "")
                            {
                                filtre.Filtre += " and " + CDonneeCumulee.c_baseChampCle + nCle.ToString() + "=@" +
                                                 (filtre.Parametres.Count + 1).ToString();
                                filtre.Parametres.Add(listeParametres[nParam].ToString());
                            }
                            nCle++;
                        }
                    }
                }
                liste.Filtre = filtre;
                liste.InterditLectureInDB = bNePasLireEnBase;
                if (liste.Count > 0)
                {
                    CDonneeCumulee donnee = (CDonneeCumulee)liste[0];
                    int            nParam = Convert.ToInt32(listeParametres[nStartParam + 1]);
                    if (nParam < 0 || nParam > CParametreDonneeCumulee.c_nbChampsValeur)
                    {
                        result.EmpileErreur(I.T("The cumulated data has no value @1|219", nParam.ToString()));
                        return(result);
                    }
                    result.Data = (double)donnee.Row[CDonneeCumulee.c_baseChampValeur + nParam.ToString()];
                }
                else
                {
                    result.Data = (double)0;
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                return(result);
            }
            return(result);
        }
コード例 #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);
        }
コード例 #7
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] listeParametres)
        {
            CResultAErreur result = CResultAErreur.True;
            string         strVal = listeParametres[0].ToString();

            Type tp = listeParametres[0] as Type;

            if (tp == null)
            {
                tp = CActivatorSurChaine.GetType(strVal, true);
            }
            if (tp == null)
            {
                tp = CActivatorSurChaine.GetType(strVal, false);
            }
            if (tp == null)
            {
                result.EmpileErreur(I.T("The @1 type does not exist|221", strVal));
                return(result);
            }
            if (!typeof(CObjetDonneeAIdNumerique).IsAssignableFrom(tp))
            {
                result.EmpileErreur(I.T("The @1 type cannot be loaded by the 'GetEntite' function|222", strVal));
                return(result);
            }
            try
            {
                CContexteDonnee contexteDonnee = (CContexteDonnee)ctx.GetObjetAttache(typeof(CContexteDonnee));
                if (contexteDonnee == null)
                {
                    contexteDonnee = new CContexteDonnee(CSessionClient.GetSessionUnique().IdSession, true, false);
                    ctx.AttacheObjet(typeof(CContexteDonnee), contexteDonnee);
                }
                CObjetDonneeAIdNumerique obj = (CObjetDonneeAIdNumerique)Activator.CreateInstance(tp, new object[] { contexteDonnee });
                if (listeParametres[1] is int)
                {
                    if (obj.ReadIfExists((int)listeParametres[1]))
                    {
                        result.Data = obj;
                    }
                    else
                    {
                        result.Data = null;
                    }
                }
                // YK 14/04/2011 Surcharge du deuxième paramètre en String Nom de l'entité nommée
                else if (listeParametres[1] is string)
                {
                    CNommageEntite nommage = new CNommageEntite(contexteDonnee);
                    if (nommage.ReadIfExists(new CFiltreData(
                                                 CNommageEntite.c_champTypeEntite + " = @1 AND " +
                                                 CNommageEntite.c_champNomFort + " = @2",
                                                 tp.ToString(),
                                                 (string)listeParametres[1])))
                    {
                        result.Data = nommage.GetObjetNomme();
                    }
                    else if (typeof(IObjetDonnee).IsAssignableFrom(tp))
                    {
                        IObjetDonnee objUniv = (IObjetDonnee)Activator.CreateInstance(tp, new object[] { contexteDonnee });
                        if (objUniv.ReadIfExistsUniversalId((string)listeParametres[1]))
                        {
                            result.Data = objUniv;
                        }
                    }
                    else
                    {
                        result.Data = null;
                    }
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
コード例 #8
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] listeParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                string strVal = listeParametres[0].ToString();
                Type   tp     = listeParametres[0] as Type;
                if (tp == null)
                {
                    tp = CActivatorSurChaine.GetType(strVal, true);
                }
                if (tp == null)
                {
                    tp = CActivatorSurChaine.GetType(strVal, false);
                }
                if (tp == null)
                {
                    result.EmpileErreur(I.T("The @1 type does not exist|221", strVal));
                    return(result);
                }
                string strTable = CContexteDonnee.GetNomTableForType(tp);
                if (strTable == null)
                {
                    result.EmpileErreur(I.T("The @1 type is not associated with a table|225", strVal));
                    return(result);
                }
                CFiltreDataAvance filtreAvance = new CFiltreDataAvance(strTable, listeParametres[1].ToString());
                for (int n = 2; n < listeParametres.Length; n++)
                {
                    filtreAvance.Parametres.Add(listeParametres[n]);
                }
                CComposantFiltre c = filtreAvance.ComposantPrincipal;

                CContexteDonnee contexteDonnee = null;
                if (ctx.ObjetSource is IObjetAContexteDonnee)
                {
                    contexteDonnee = ((IObjetAContexteDonnee)ctx.ObjetSource).ContexteDonnee;
                }
                if (contexteDonnee == null)
                {
                    contexteDonnee = (CContexteDonnee)ctx.GetObjetAttache(typeof(CContexteDonnee));
                }
                if (contexteDonnee == null)
                {
                    contexteDonnee = new CContexteDonnee(CSessionClient.GetSessionUnique().IdSession, true, false);
                    ctx.AttacheObjet(typeof(CContexteDonnee), contexteDonnee);
                }
                CFiltreData filtre = null;
                if (filtreAvance.HasFiltre)
                {
                    filtre = filtreAvance;
                }
                CListeObjetsDonnees liste = new CListeObjetsDonnees(contexteDonnee, tp, filtre);
                result.Data = liste;
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }

            return(result);
        }