コード例 #1
0
        //---------------------------------------------
        public IElementACout[] GetSourcesDeCout(bool bCoutReel)
        {
            CListeObjetsDonnees lstBesoins = Besoins;

            lstBesoins.Filtre = new CFiltreData(CBesoin.c_champIdBesoinParent + " is null");
            return(lstBesoins.ToArray <CBesoin>());
        }
コード例 #2
0
        //---------------------------------------------------------
        public CBesoin[] GetSousBesoinsDeSatisfaction()
        {
            CListeObjetsDonnees lstBesoins = Besoins;

            lstBesoins.Filtre = new CFiltreData(CBesoin.c_champIdBesoinParent + " is null");
            return(lstBesoins.ToArray <CBesoin>());
        }
コード例 #3
0
 //-------------------------------------------
 public override object[] GetObjets(CNodeConsultationHierarchique nodeParent, CContexteDonnee contexte)
 {
     try
     {
         if (m_filtreDynamique == null || m_filtreDynamique.TypeElements == null)
         {
             return(new object[0]);
         }
         CVariableDynamique variable = AssureVariableParent();
         if (variable != null)
         {
             m_filtreDynamique.SetValeurChamp(variable, nodeParent);
         }
         CResultAErreur result = m_filtreDynamique.GetFiltreData();
         if (!result)
         {
             return(new object[0]);
         }
         CListeObjetsDonnees lst = new CListeObjetsDonnees(contexte, m_filtreDynamique.TypeElements);
         lst.Filtre = (CFiltreData)result.Data;
         return((object[])lst.ToArray(typeof(object)));
     }
     catch
     {
     }
     return(new object[0]);
 }
コード例 #4
0
        //------------------------------------------------------------------------------------------------
        private CCaracteristiqueEntite[] GetDocumentsAttendus()
        {
            if (m_objetEdite == null)
            {
                return(null);
            }

            CObjetDonneeAIdNumerique objet = m_objetEdite as CObjetDonneeAIdNumerique;

            if (objet != null)
            {
                string strIdsDocumentsAttendus = CTimosWebAppRegistre.IdsTypesCaracteristiquesDocumentsAttendus;

                CFiltreData filtre;
                if (strIdsDocumentsAttendus.Length == 0)
                {
                    filtre = new CFiltreDataImpossible();
                }
                else
                {
                    filtre = new CFiltreData(CCaracteristiqueEntite.c_champTypeElement + "=@1 and " +
                                             CCaracteristiqueEntite.c_champIdElementLie + "=@2 and " + CTypeCaracteristiqueEntite.c_champId + " IN (" + strIdsDocumentsAttendus + ")",
                                             objet.GetType().ToString(),
                                             objet.Id);
                }
                CListeObjetsDonnees lst = new CListeObjetsDonnees(objet.ContexteDonnee, typeof(CCaracteristiqueEntite), filtre);
                int combien             = lst.Count;
                return(lst.ToArray <CCaracteristiqueEntite>());
            }

            return(null);
        }
コード例 #5
0
        //---------------------------------------------------------------------------
        public CFormulaire[] GetFormulaires()
        {
            CListeObjetsDonnees listeFormulaires = new CListeObjetsDonnees(ContexteDonnee, typeof(CFormulaire));

            listeFormulaires.Filtre = CFormulaire.GetFiltreFormulairesForRole(c_roleChampCustom);

            /*new CFiltreData(
             *              CFormulaire.c_champCodeRole + "=@1",
             *              c_roleChampCustom);*/
            return((CFormulaire[])listeFormulaires.ToArray(typeof(CFormulaire)));
        }
コード例 #6
0
ファイル: CAgentSnmp.cs プロジェクト: ykebaili/Timos
        public CEntiteSnmp[] GetSnmpEntitiesWithType(CTypeEntiteSnmp type)
        {
            CListeObjetsDonnees lst = EntitesSnmp;

            if (type != null)
            {
                lst.FiltrePrincipal = CFiltreData.GetAndFiltre(lst.FiltrePrincipal,
                                                               new CFiltreData(CTypeEntiteSnmp.c_champId + "=@1",
                                                                               type.Id));
            }
            return(lst.ToArray <CEntiteSnmp>());
        }
コード例 #7
0
        public override object Invoke(object objetAppelle, params object[] parametres)
        {
            if (!(objetAppelle is CVersionDonnees))
            {
                return(new CIntervention[0]);
            }
            CListeObjetsDonnees liste = new CListeObjetsDonnees(((CObjetDonnee)objetAppelle).ContexteDonnee, typeof(CIntervention));

            liste.Filtre = new CFiltreData(CVersionDonnees.c_champId + "=@1",
                                           ((CVersionDonnees)objetAppelle).Id);
            return(liste.ToArray(typeof(CIntervention)));
        }
コード例 #8
0
        public override object Invoke(object objetAppelle, params object[] parametres)
        {
            if (parametres.Length != 1 || parametres[0] == null ||
                !(objetAppelle is CObjetDonneeAIdNumerique))
            {
                return(null);
            }
            CObjetDonneeAIdNumerique objet = (CObjetDonneeAIdNumerique)objetAppelle;
            CListeObjetsDonnees      lst   = CCaracteristiqueEntite.GetCaracteristiques(objet);

            if (parametres.Length > 0 && parametres[0] is CTypeCaracteristiqueEntite)
            {
                lst.Filtre = new CFiltreData(CTypeCaracteristiqueEntite.c_champId + "=@1",
                                             ((CTypeCaracteristiqueEntite)parametres[0]).Id);
            }
            return(lst.ToArray <CCaracteristiqueEntite>());
        }
コード例 #9
0
        //------------------------------------------------------------
        public CResultAErreur GetValue(object objet, string strPropriete)
        {
            CResultAErreur result      = CResultAErreur.True;
            CObjetDonnee   objetDonnee = objet as CObjetDonnee;

            if (objetDonnee == null)
            {
                return(result);
            }

            int nIdListe = -1;

            try
            {
                nIdListe = Int32.Parse(strPropriete);
            }
            catch
            {
                result.EmpileErreur(I.T("Bad entity list property format (@1)|20028", strPropriete));
                return(result);
            }
            CListeEntites liste = new CListeEntites(objetDonnee.ContexteDonnee);

            try
            {
                if (liste.ReadIfExists(nIdListe))
                {
                    CListeObjetsDonnees resultListe = liste.GetElementsLiesFor(objetDonnee);
                    if (resultListe != null)
                    {
                        result.Data = resultListe.ToArray(liste.TypeElements);
                    }
                }
                else
                {
                    result.EmpileErreur(I.T("Entity list @1 doesn't exists|20029", strPropriete));
                    return(result);
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
コード例 #10
0
        /// ///////////////////////////////////////////
        public object GetValeur(IElementAVariablesDynamiquesAvecContexteDonnee elementInterroge)
        {
            if (m_filtreDynamique == null)
            {
                return(null);
            }
            m_filtreDynamique.ElementAVariablesExterne = elementInterroge;
            CResultAErreur result = m_filtreDynamique.GetFiltreData();

            if (!result)
            {
                return(null);
            }
            CListeObjetsDonnees liste = new CListeObjetsDonnees(elementInterroge.ContexteDonnee, m_filtreDynamique.TypeElements);

            liste.Filtre = (CFiltreData)result.Data;
            return(liste.ToArray(m_filtreDynamique.TypeElements));
        }
コード例 #11
0
        public CSite[] GetConcernedSites(DateTime dt)
        {
            CListeObjetsDonnees lst = new CListeObjetsDonnees(ContexteDonnee, typeof(CSite));

            lst.Filtre = new CFiltreDataAvance(CSite.c_nomTable,
                                               CContrat_Site.c_nomTable + "." +
                                               CTypeTicketContrat_Site.c_nomTable + "." +
                                               CTypeTicketContrat.c_champId + "=@1 and " +
                                               CContrat_Site.c_nomTable + "." +
                                               CTypeTicketContrat_Site.c_nomTable + "." +
                                               CTypeTicketContrat_Site_Periode.c_nomTable + "." +
                                               CTypeTicketContrat_Site_Periode.c_champDateDebut + "<=@2 and " +
                                               CContrat_Site.c_nomTable + "." +
                                               CTypeTicketContrat_Site.c_nomTable + "." +
                                               CTypeTicketContrat_Site_Periode.c_nomTable + "." +
                                               CTypeTicketContrat_Site_Periode.c_champDateFin + ">=@2",
                                               Id,
                                               dt);
            return((CSite[])lst.ToArray(typeof(CSite)));
        }
コード例 #12
0
 //-------------------------------------------------------------
 public static bool ApplyFormula(CListeObjetsDonnees lst)
 {
     return(ApplyFormula(lst.ToArray <CObjetDonnee>()));
 }
コード例 #13
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur  MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            List <Type> lstTypesAVerifier = new List <Type>();

            //Trouve tous les types héritant de CMappableTimos
            foreach (Assembly ass in sc2i.common.CGestionnaireAssemblies.GetAssemblies())
            {
                foreach (Type tp in ass.GetTypes())
                {
                    if (typeof(IObjetSPVAvecObjetTimos).IsAssignableFrom(tp))
                    {
                        lstTypesAVerifier.Add(tp);
                    }
                }
            }
            List <string> lstTablesDansOrdre = new List <string>();

            using (CContexteDonnee ctxTmp = new CContexteDonnee(contexte.IdSession, true, false))
            {
                foreach (Type tp in lstTypesAVerifier)
                {
                    string strTable = CContexteDonnee.GetNomTableForType(tp);
                    if (strTable != null)
                    {
                        ctxTmp.GetTableSafe(strTable);
                    }
                }
                foreach (DataTable table in ctxTmp.GetTablesOrderInsert())
                {
                    lstTablesDansOrdre.Add(table.TableName);
                }
            }
            foreach (string strNomTable in lstTablesDansOrdre)
            {
                Type   tp       = CContexteDonnee.GetTypeForTable(strNomTable);
                Type   tpParent = tp;
                Type[] generics = new Type[0];
                while (tpParent != null && generics.Length == 0)
                {
                    if (tpParent.IsGenericType && tpParent.GetGenericTypeDefinition() == typeof(CMappableAvecTimos <,>))
                    {
                        generics = tpParent.GetGenericArguments();
                    }
                    tpParent = tpParent.BaseType;
                }
                if (generics.Length == 0)
                {
                    continue;
                }

                IObjetSPVAvecObjetTimos obj = Activator.CreateInstance(tp, new object[] { contexte.ContexteDonnee }) as IObjetSPVAvecObjetTimos;
                Type typeTimos = obj.GetTypeObjetsTimos();
                //Lit tous les objets TIMOS
                CListeObjetsDonnees lstObjetsTimos = new CListeObjetsDonnees(contexte.ContexteDonnee, typeTimos);
                lstObjetsTimos.AssureLectureFaite();
                CListeObjetsDonnees lstObjetsSpv = new CListeObjetsDonnees(contexte.ContexteDonnee, obj.GetType());
                lstObjetsSpv.AssureLectureFaite();
                string strIdObjetTimosInObjetSpv = obj.GetChampIdObjetTimos();
                Type   tpMappable = typeof(CMappeurTimos <,>).MakeGenericType(generics);
                IMappeurTimosNonGenerique mappeur = Activator.CreateInstance(tpMappable) as IMappeurTimosNonGenerique;
                foreach (CObjetDonneeAIdNumerique objTimos in (CObjetDonneeAIdNumerique[])lstObjetsTimos.ToArray(typeof(CObjetDonneeAIdNumerique)))
                {
                    CObjetDonneeAIdNumerique objSpv = Activator.CreateInstance(tp, new object[] { contexte.ContexteDonnee }) as CObjetDonneeAIdNumerique;
                    if (!objSpv.ReadIfExists(new CFiltreData(strIdObjetTimosInObjetSpv + "=@1",
                                                             objTimos.Id), false))
                    {
                        mappeur.GetObjetSpvFromObjetTimosAvecCreationSansGenerique(objTimos);
                    }
                }
            }
            return(result);
        }
コード例 #14
0
        private void FillListeChamps()
        {
            if (m_parametre == null)
            {
                m_parametre = new CParametreRemplissageActiviteParIntervention();
            }
            m_panelFormules.SuspendDrawing();
            foreach (Control ctrl in m_panelFormules.Controls)
            {
                if (ctrl is CEditeurFormuleNommee)
                {
                    ctrl.Visible = false;
                    m_reserveEditeurs.Add(ctrl);
                }
            }
            ArrayList lst = new ArrayList();

            // Recupère la liste des champs customs liés à des Activités
            CListeObjetsDonnees lstChamps = CChampCustom.GetListeChampsForRole(m_typeActivite.ContexteDonnee, CActiviteActeur.c_roleChampCustom);

            //CChampCustom[] champs = m_typeActivite.TousLesChampsAssocies;
            CChampCustom[] champs = (CChampCustom[])lstChamps.ToArray(typeof(CChampCustom));

            foreach (CChampCustom champ in champs)
            {
                CFormuleForParametre formule = new CFormuleForParametre(champ);
                formule.Formule = m_parametre.GetFormuleForChamp(champ);
                lst.Add(formule);
            }
            lst.Sort();
            m_listeExpressions = lst;
            int nY = 0;

            foreach (CFormuleForParametre formule in lst)
            {
                CEditeurFormuleNommee editeur = null;
                if (m_reserveEditeurs.Count > 0)
                {
                    editeur = (CEditeurFormuleNommee)m_reserveEditeurs[0];
                    m_reserveEditeurs.Remove(editeur);
                }
                else
                {
                    editeur        = new CEditeurFormuleNommee();
                    editeur.Parent = m_panelFormules;
                }
                editeur.Visible            = true;
                editeur.Width              = m_panelFormules.ClientRectangle.Width;
                editeur.Location           = new Point(0, nY);
                formule.Editeur            = editeur;
                editeur.TextFormule.Enter += new EventHandler(OnEnterZoneFormule);
                editeur.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge);
                editeur.Libelle  = formule.ChampCustom.Nom;
                editeur.TabIndex = nY;
                editeur.Dock     = DockStyle.Top;
                editeur.BringToFront();
                nY += editeur.Size.Height + 1;
                editeur.Formule = formule.Formule;
            }
            m_panelFormules.ResumeDrawing();
        }
コード例 #15
0
        /// ///////////////////////////////////////////////////////////
        public object GetValue(object objetInterroge, CDefinitionProprieteDynamique propriete)
        {
            //Récupère l'objet à interroger
            string strProp = propriete.NomPropriete;
            object valeur  = m_cache.GetValeurCache(objetInterroge, strProp);

            if (valeur != null)
            {
                return(valeur);
            }

            CContexteDonnee contexteForObjets = ContexteDonneeCache;

            if (objetInterroge is IObjetAContexteDonnee)
            {
                contexteForObjets = ((IObjetAContexteDonnee)objetInterroge).ContexteDonnee;
            }
            if (contexteForObjets == null)
            {
                contexteForObjets = ContexteDonneeCache;
            }


            object objetFinal = objetInterroge;
            int    nPos       = strProp.LastIndexOf('.');

            if (nPos > 0 && !(propriete is CDefinitionProprieteDynamiqueDonneeCumulee) &&
                !(propriete is CDefinitionProprieteDynamiqueChampCustom) &&
                !(propriete is CDefinitionProprieteDynamiqueChampCustomFils) &&
                !(propriete is CDefinitionProprieteDynamiqueFormule))
            {
                string strPropDebut;
                strPropDebut = strProp.Substring(0, nPos);
                strProp      = strProp.Substring(nPos + 1);
                objetFinal   = m_cache.GetValeurCache(objetInterroge, strPropDebut);
                if (objetFinal == null)
                {
                    objetFinal = GetValue(objetInterroge, strPropDebut);

                    /*object objetAInterroger = null;
                     * MemberInfo membre = null;
                     * CInterpreteurTexteProptVariete.GetObjetFinalEtMemberInfo ( objetInterroge, strPropDebut, ref objetAInterroger, ref membre );
                     * if ( membre != null )
                     * {
                     *      objetFinal = CInterpreteurTextePropriete.GetValue ( objetAInterroger, membre );
                     * }
                     * else
                     * {
                     *      //On n'a pas trouvé le membre, il s'agit donc d'autre chose, il faut donc décomposer
                     *      //Le champ
                     * }*/
                    //objetFinal = CInterpreteurTextePropriete.GetValue(objetInterroge, strPropDebut);
                    m_cache.StockeValeurEnCache(objetInterroge, strPropDebut, objetFinal);
                }
                if (objetFinal == null)
                {
                    return(null);
                }
                valeur = m_cache.GetValeurCache(objetFinal, strProp);
                if (valeur != null)
                {
                    return(valeur);
                }
            }


            if (propriete is CDefinitionProprieteDynamiqueChampCustom)
            {
                if (!(objetFinal is IElementAChamps))
                {
                    valeur = null;
                }

                else
                {
                    //TESTDBKEYTODO qui ne peut pas marche
                    valeur = ((IElementAChamps)objetFinal).GetValeurChamp(((CDefinitionProprieteDynamiqueChampCustom)propriete).DbKeyChamp.InternalIdNumeriqueANeJamaisUtiliserSaufDansCDbKeyAddOn.Value, System.Data.DataRowVersion.Default);

                    /*if (m_bValeurAfficheeDeChampsCustom)
                     * {
                     *      CChampCustom champ = new CChampCustom(ContexteDonneeCache);
                     *      if (champ.ReadIfExists(((CDefinitionProprieteDynamiqueChampCustom)propriete).IdChamp))
                     *      {
                     *              object valTmp = champ.DisplayFromValue(valeur);
                     *              if (valTmp != null)
                     *                      valeur = valTmp;
                     *      }
                     * }*/
                }
            }
            else if (propriete is CDefinitionProprieteDynamiqueChampCustomFils && objetInterroge is CObjetDonneeAIdNumerique)
            {
                CChampCustom champ = new CChampCustom(ContexteDonneeCache);
                if (champ.ReadIfExists(((CDefinitionProprieteDynamiqueChampCustomFils)propriete).KeyChamp))
                {
                    Type tp = champ.Role.TypeAssocie;

                    try
                    {
                        IObjetDonneeAChamps elt = (IObjetDonneeAChamps)Activator.CreateInstance(tp, new object[] { contexteForObjets });
                        CRelationElementAChamp_ChampCustom rel = elt.GetNewRelationToChamp();
                        CListeObjetsDonnees liste = new CListeObjetsDonnees(contexteForObjets, tp);
                        liste.Filtre = new CFiltreDataAvance(
                            elt.GetNomTable(),
                            rel.GetNomTable() + "." +
                            CRelationElementAChamp_ChampCustom.c_champValeurString + "=@1 and " +
                            rel.GetNomTable() + "." +
                            CRelationElementAChamp_ChampCustom.c_champValeurInt + "=@2 and " +
                            rel.GetNomTable() + "." +
                            CChampCustom.c_champId + "=@3",
                            objetInterroge.GetType().ToString(),
                            ((CObjetDonneeAIdNumerique)objetInterroge).Id,
                            champ.Id);
                        valeur = liste.ToArray(tp);
                    }
                    catch
                    {
                        valeur = null;
                    }
                }
            }
            else if (propriete is CDefinitionProprieteDynamiqueListeEntites)
            {
                CListeEntites liste = new CListeEntites(contexteForObjets);
                try
                {
                    if (liste.ReadIfExists(((CDefinitionProprieteDynamiqueListeEntites)propriete).DbKeyListeEntite))
                    {
                        CListeObjetsDonnees resultListe = liste.GetElementsLiesFor(objetInterroge);
                        if (resultListe != null)
                        {
                            valeur = resultListe.ToArray(liste.TypeElements);
                        }
                    }
                }
                catch
                {
                    valeur = null;
                }
            }


            else if (propriete is CDefinitionProprieteDynamiqueRelationTypeId)
            {
                if (!(objetFinal is CObjetDonneeAIdNumerique))
                {
                    valeur = null;
                }
                else
                {
                    CDefinitionProprieteDynamiqueRelationTypeId defRel = (CDefinitionProprieteDynamiqueRelationTypeId)propriete;
                    return(((CObjetDonneeAIdNumerique)objetFinal).GetDependancesRelationTypeId(
                               defRel.Relation.TableFille,
                               defRel.Relation.ChampType,
                               defRel.Relation.ChampId,
                               false));
                }
            }
            else if (propriete is CDefinitionProprieteDynamiqueDonneeCumulee)
            {
                if (!(objetFinal is CObjetDonneeAIdNumerique))
                {
                    valeur = null;
                }
                else
                {
                    CDefinitionProprieteDynamiqueDonneeCumulee defType = (CDefinitionProprieteDynamiqueDonneeCumulee)propriete;
                    CObjetDonneeAIdNumerique objet = (CObjetDonneeAIdNumerique)objetFinal;
                    CTypeDonneeCumulee       type  = new CTypeDonneeCumulee(contexteForObjets);
                    if (type.ReadIfExists(defType.DbKeyTypeDonnee))
                    {
                        valeur = type.GetDonneesCumuleesForObjet(objet);
                    }
                    else
                    {
                        valeur = null;
                    }
                }
            }
            else if (propriete is CDefinitionProprieteDynamiqueChampCalcule)
            {
                CChampCalcule champ = new CChampCalcule(contexteForObjets);
                if (champ.ReadIfExists(((CDefinitionProprieteDynamiqueChampCalcule)propriete).DbKeyChamp))
                {
                    valeur = champ.Calcule(objetFinal, new CFournisseurPropDynStd(true));
                }
                else
                {
                    valeur = null;
                }
            }
            else if (propriete is CDefinitionProprieteDynamiqueFormule)
            {
                CContexteEvaluationExpression contexte = new CContexteEvaluationExpression(objetInterroge);
                contexte.AttacheObjet(typeof(CContexteDonnee), contexteForObjets);
                CResultAErreur result = ((CDefinitionProprieteDynamiqueFormule)propriete).Formule.Eval(contexte);
                if (result)
                {
                    return(result.Data);
                }
            }
            else if (propriete is CDefinitionProprieteDynamiqueVariableDynamique && objetFinal is IElementAVariables)
            {
                valeur = ((IElementAVariables)objetFinal).GetValeurChamp(((CDefinitionProprieteDynamiqueVariableDynamique)propriete).IdChamp);
            }
            else
            {
                valeur = CInterpreteurTextePropriete.GetValue(objetFinal, strProp);
            }
            m_cache.StockeValeurEnCache(objetInterroge, propriete.Nom, valeur);
            if (objetFinal != objetInterroge)
            {
                m_cache.StockeValeurEnCache(objetFinal, strProp, valeur);
            }
            return(valeur);
        }