//-----------------------------------------------------------------------------
        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
        //-------------------------------------------------------------------
        private CResultAErreur EditerObjetNomme(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            CNommageEntite nommage = objet as CNommageEntite;

            if (nommage != null)
            {
                CObjetDonneeAIdNumerique objetNomme = nommage.GetObjetNomme();
                if (objetNomme != null)
                {
                    CReferenceTypeForm refForm = CFormFinder.GetRefFormToEdit(objetNomme.GetType());
                    if (refForm != null)
                    {
                        IFormNavigable form = refForm.GetForm((CObjetDonneeAIdNumeriqueAuto)objetNomme) as IFormNavigable;
                        if (form != null)
                        {
                            CTimosApp.Navigateur.AffichePage(form);
                        }
                    }
                }
            }

            return(result);
        }
예제 #3
0
        public CResultAErreur MajChamps()
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_txtNomFort.Text.Trim() == String.Empty)
            {
                result.EmpileErreur(I.T("Empty string not allowed|10115"));
                return(result);
            }
            else
            {
                string strNomSaisi = m_txtNomFort.Text.Trim();
                // Recherche s'il y a une autre entité avec ce Nom, et proposede le réaffecter
                CListeObjetsDonnees lstNommages = new CListeObjetsDonnees(m_nommage.ContexteDonnee, typeof(CNommageEntite));
                //TESTDBKEYOK (SC)
                lstNommages.Filtre = new CFiltreData(
                    "(" + CNommageEntite.c_champTypeEntite + " <> @1 or " +
                    CNommageEntite.c_champCleEntite + " <> @2) and " +
                    CNommageEntite.c_champNomFort + " LIKE @3",
                    m_nommage.TypeEntityString,
                    m_nommage.CleEntiteString,
                    strNomSaisi);

                if (lstNommages.Count > 0)
                {
                    CNommageEntite nomExistant = lstNommages[0] as CNommageEntite;
                    if (nomExistant != null)
                    {
                        CObjetDonneeAIdNumerique objetDejaNomme = nomExistant.GetObjetNomme();
                        if (objetDejaNomme != null)
                        {
                            if (CFormAlerte.Afficher(I.T("The Strong Name @1 will be reassigned from @2 to @3. Continue ?|10117",
                                                         strNomSaisi, objetDejaNomme.DescriptionElement, m_nommage.GetObjetNomme().DescriptionElement),
                                                     EFormAlerteType.Question) == DialogResult.Yes)
                            {
                                nomExistant.Delete();
                                m_nommage.NomFort = strNomSaisi;
                            }
                            else
                            {
                                result.EmpileErreur(I.T("The Strong Name @1 already exist on @2|10118", strNomSaisi, objetDejaNomme.DescriptionElement));
                                return(result);
                            }
                        }
                    }
                }

                m_nommage.NomFort = strNomSaisi;
            }
            return(result);
        }
예제 #4
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);
        }