//----------------------------------------------------------------------------- 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); }
/// ////////////////////////////////////////// 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); }
/// ////////////////////////////////////////// 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); }
/// ////////////////////////////////////////// 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); }
/// ////////////////////////////////////////// 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); }
/// ////////////////////////////////////////// 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); }
/// ////////////////////////////////////////// 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); }
/// ////////////////////////////////////////// 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); }