//---------------------------------------------------------------------- public CResultAErreur SetParametres(Dictionary <string, object> dicParametres) { CResultAErreur result = CResultAErreur.True; object obj = null; if (dicParametres.TryGetValue(m_cParametreElementId, out obj)) { if (obj is int) { int nId = (int)obj; if (dicParametres.TryGetValue(m_cParametreElementType, out obj)) { string strType = (string)obj; Type tp = CActivatorSurChaine.GetType(strType); if (tp != null) { m_elementForGED = (CObjetDonneeAIdNumerique)Activator.CreateInstance( tp, new object[] { CSc2iWin32DataClient.ContexteCourant }); if (!m_elementForGED.ReadIfExists(nId)) { m_elementForGED = null; result.EmpileErreur(I.T("Element for EDM Navigation Form not found|10100")); return(result); } } } } } return(result); }
//---------------------------------------------------- public static bool ReadIfExists(this CDbKey key, CObjetDonnee objet) { if (key.InternalUniversalIdANeJamaisUtiliserSaufDansCDbKeyAddOn.Length > 0) { if (objet.ReadIfExistsUniversalId(key.InternalUniversalIdANeJamaisUtiliserSaufDansCDbKeyAddOn)) { return(true); } return(false); } if (key.InternalIdNumeriqueANeJamaisUtiliserSaufDansCDbKeyAddOn != null) { IObjetDonneeAIdNumerique objetId = objet as IObjetDonneeAIdNumerique; if (objetId != null && objetId.ReadIfExists(key.InternalIdNumeriqueANeJamaisUtiliserSaufDansCDbKeyAddOn.Value)) { return(true); } } return(false); }
public override sc2i.common.CResultAErreur InitFromContexte(CContexteFormNavigable ctx) { CResultAErreur result = base.InitFromContexte(ctx); if (!result) { return(result); } if (ctx["TYPE_OBJET"] != null) { m_objetForGED = (CObjetDonneeAIdNumerique)Activator.CreateInstance( (Type)ctx["TYPE_OBJET"], new object[] { CSc2iWin32DataClient.ContexteCourant }); if (!m_objetForGED.ReadIfExists((int)ctx["ID_OBJET"])) { m_objetForGED = null; } } return(result); }
public override sc2i.common.CResultAErreur InitFromContexte(CContexteFormNavigable ctx) { CResultAErreur result = base.InitFromContexte(ctx); if (!result) { return(result); } if (ctx["TYPE_OBJET"] != null) { m_objetForSuivi = (CObjetDonneeAIdNumerique)Activator.CreateInstance( (Type)ctx["TYPE_OBJET"], new object[] { CSc2iWin32DataClient.ContexteCourant }); if (!m_objetForSuivi.ReadIfExists((int)ctx["ID_OBJET"])) { m_objetForSuivi = null; } } m_chkOnlyPrincipaux.Checked = (bool)ctx["PRINCIPAUX"]; return(result); }
public CResultAErreur InitFromContexte(CContexteFormNavigable contexte) { CResultAErreur result = CResultAErreur.True; m_contexte = contexte; if (contexte["TYPE_OBJET"] != null) { m_elementForGED = (CObjetDonneeAIdNumerique)Activator.CreateInstance( (Type)contexte["TYPE_OBJET"], new object[] { CSc2iWin32DataClient.ContexteCourant }); if (!m_elementForGED.ReadIfExists((int)contexte["ID_OBJET"])) { m_elementForGED = null; } } if (AfterInitFromContexte != null) { AfterInitFromContexte(this, contexte); } return(result); }
/// //////////////////////////////////////////////////////// private static void SerializeObjetAIdAuto( int nVersion, Type typeObjet, ref IObjetDonneeAIdNumerique valeur, C2iSerializer serializer, CContexteDonnee contexte) { //TESTDBKEYTODO : REmplacer l'id par un DbKey CDbKey dbKey = null; if (valeur is CObjetDonnee && ((CObjetDonnee)valeur).Row.RowState != DataRowState.Deleted && ((CObjetDonnee)valeur).Row.RowState != DataRowState.Detached) { dbKey = valeur.DbKey; } if (nVersion < 14) { serializer.ReadDbKeyFromOldId(ref dbKey, typeObjet); } else { serializer.TraiteDbKey(ref dbKey); } if (nVersion >= 8 && dbKey != null) { serializer.TraiteType(ref typeObjet); } if (dbKey != null && serializer.Mode == ModeSerialisation.Lecture) { valeur = (IObjetDonneeAIdNumerique)Activator.CreateInstance(typeObjet, new object[] { contexte }); if (!valeur.ReadIfExists(dbKey)) { valeur = null; } } }
/// //////////////////////////////////////////////////////// protected override CResultAErreur MyExecute(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; //Calcule la nouvelle valeur CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(Process); contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee); result = ExpressionValeur.Eval(contexteEval); if (!result) { result.EmpileErreur(I.T("Error during @1 formula evaluation|216", ExpressionValeur.ToString())); return(result); } object nouvelleValeur = result.Data; CVariableDynamique variable = VariableAModifier; if (nouvelleValeur is CResultAErreur && variable == null) { return(( CResultAErreur )nouvelleValeur); } if (variable != null) { /*result.EmpileErreur("Variable "+m_nIdVariableAModifier.ToString()+" inconnue"); * return result; * }*/ if (variable is CVariableProcessTypeComplexe && typeof(IObjetDonneeAIdNumerique).IsAssignableFrom(variable.TypeDonnee.TypeDotNetNatif)) { ArrayList lstElements = new ArrayList(); try { ArrayList lst = new ArrayList(); if (typeof(IObjetDonneeAIdNumerique).IsAssignableFrom(result.Data.GetType()) || result.Data is int) { lst.Add(result.Data); } else if (result.Data is IList) { foreach (object item in (IList)result.Data) { lst.Add(item); } } else { result.EmpileErreur(I.T("Incompatible value type|228")); return(result); } Type tp = variable.TypeDonnee.TypeDotNetNatif; foreach (object obj in lst) { if (obj is int) { IObjetDonneeAIdNumerique objet = (IObjetDonneeAIdNumerique)Activator.CreateInstance(tp, new object[] { contexte.ContexteDonnee }); if (objet.ReadIfExists((int)obj)) { lstElements.Add(objet); } } else if (typeof(IObjetDonneeAIdNumerique).IsAssignableFrom(obj.GetType())) { lstElements.Add(obj); } } } catch { } if (variable.TypeDonnee.IsArrayOfTypeNatif) { contexte.Branche.Process.SetValeurChamp(variable, lstElements); } else { if (lstElements.Count > 0) { contexte.Branche.Process.SetValeurChamp(variable, lstElements[0]); } else { contexte.Branche.Process.SetValeurChamp(variable, null); } } } else { contexte.Branche.Process.SetValeurChamp(variable, result.Data); } } return(result); }