示例#1
0
        //-------------------------------------------------------------------------------
        //Optimisation : l'entité pour sup n'est créée qu'une seul fois lors d'appels multiples
        public CResultAErreur ReadChampSnmp(int nIdChampCustom, CInterrogateurSnmp dynamicAgent, ref CEntiteSnmpPourSupervision ettPourSup)
        {
            CResultAErreur result = CResultAErreur.True;

            CResultAErreurType <string> resOID = GetFieldOIDWithEntitePourSupervision(nIdChampCustom, ettPourSup);

            if (!resOID)
            {
                result.EmpileErreur(resOID.Erreur);
                return(result);
            }

            string    strOID = resOID.DataType;
            ISnmpData valeur = dynamicAgent.Get(strOID) as ISnmpData;
            CRelationEntiteSnmp_ChampCustom relChamp = CUtilElementAChamps.GetRelationToChamp(this, nIdChampCustom) as CRelationEntiteSnmp_ChampCustom;

            if (relChamp != null)
            {
                if (valeur == null)
                {
                    relChamp.LastSnmpValue = null;
                }
                else
                {
                    relChamp.LastSnmpValue = valeur.ConvertToTypeDotNet();
                }
            }
            result.Data = valeur != null?valeur.ConvertToTypeDotNet() : null;

            return(result);
        }
示例#2
0
        public static CResultAErreurType <CCamusatQowisioData> StaticTraiteDataRowFromCsv(CContexteDonnee contexte, string strCsvRow)
        {
            CResultAErreurType <CCamusatQowisioData> result = new CResultAErreurType <CCamusatQowisioData>();

            result.Result = true;
            CCamusatQowisioData newData = new CCamusatQowisioData(contexte);

            newData.CreateNewInCurrentContexte();
            CResultAErreur resTmp = CResultAErreur.True;

            resTmp = newData.TraiteDataRowFromCsv(strCsvRow);
            if (!resTmp && newData.IsNew())
            {
                newData.CancelCreate();
            }

            if (!resTmp)
            {
                result.Erreur = resTmp.Erreur;
            }
            else
            {
                result.DataType = newData;
            }
            return(result);
        }
示例#3
0
        //-----------------------------------------------------------------------------------------------------
        private void m_menuCreateStep_Click(object sender, EventArgs e)
        {
            CEtapeWorkflow etape = EtapeSelectionnee;

            if (etape == null)
            {
                using (CContexteDonnee ctx = new CContexteDonnee(m_workflowRacine.ContexteDonnee.IdSession, true, false))
                {
                    CWorkflow wkf = m_stackWorkflows.Peek();
                    if (wkf != null)
                    {
                        wkf = wkf.GetObjetInContexte(ctx) as CWorkflow;
                        CResultAErreurType <CEtapeWorkflow> res = wkf.CreateOrGetEtapeInCurrentContexte(TypeEtapeSelectionnee);
                        if (!res)
                        {
                            CFormAlerte.Afficher(res.Erreur);
                            return;
                        }
                        CResultAErreur result = ctx.SaveAll(true);
                        if (!result)
                        {
                            CFormAlerte.Afficher(result.Erreur);
                            return;
                        }
                    }
                }
            }
        }
示例#4
0
        ////////////////////////////////////////////////////////////////////////
        public CResultAErreurType <List <CModifSynchronisation> > GetModifsFromVersion(
            int nIdSyncStart,
            int nIdSyncEnd,
            CFiltresSynchronisation filtres)
        {
            bool           bTmp = false;
            CResultAErreur res  = FillWithModifsFromVersion(
                nIdSyncStart,
                nIdSyncEnd,
                ref bTmp,
                filtres,
                false,
                true);
            CResultAErreurType <List <CModifSynchronisation> > result = new CResultAErreurType <List <CModifSynchronisation> >();

            if (!res)
            {
                result.EmpileErreur(res.Erreur);
                result.Result = false;
            }
            else
            {
                result.DataType = res.Data as List <CModifSynchronisation>;
            }
            return(result);
        }
示例#5
0
        /// /////////////////////////////////////////////////////////
        public CResultAErreurType <ObjectRegistryBase> GetMibComplete()
        {
            CResultAErreurType <ObjectRegistryBase> resultBase = new CResultAErreurType <ObjectRegistryBase>();

            try
            {
                SimpleObjectRegistry registre = new SimpleObjectRegistry();
                if (!LoadInRegistre(registre))
                {
                    //Regarde s'il y a des modules manquants
                    string[] strDeps = DependancesManquantes;
                    if (strDeps.Length > 0)
                    {
                        resultBase.EmpileErreur(I.T("Can not compile this module because of missing dependancies|20254"));
                    }
                    else
                    {
                        resultBase.EmpileErreur(I.T("Can not compile this module|20255"));
                    }
                }
                else
                {
                    resultBase.DataType = registre;
                }
            }
            catch (Exception e)
            {
                resultBase.EmpileErreur(new CErreurException(e));
            }
            return(resultBase);
        }
示例#6
0
        public CResultAErreurType <CParametresInitialisationEtape> MajChamps()
        {
            CParametresInitialisationEtape parametre = new CParametresInitialisationEtape();
            CResultAErreurType <CParametresInitialisationEtape> result = new CResultAErreurType <CParametresInitialisationEtape>();

            foreach (CFormuleNommee formuleNommée in m_panelFormules.GetFormules())
            {
                if (formuleNommée.Formule == null) //|| !typeof(IAffectableAEtape).IsAssignableFrom(formuleNommée.Formule.TypeDonnee.TypeDotNetNatif))
                {
                    result.EmpileErreur(I.T("Formula @1 is invalid (should return an object that can be assigned to a step)|20066",
                                            formuleNommée.Libelle));
                }
            }
            C2iExpression formule = m_txtFormuleInitialisation.Formule;

            if (formule == null && !m_txtFormuleInitialisation.ResultAnalyse)
            {
                result.EmpileErreur(m_txtFormuleInitialisation.ResultAnalyse.Erreur);
            }
            if (formule != null)
            {
                parametre.FormuleInitialisation = formule;
            }
            if (result)
            {
                parametre.Affectations.Formules = m_panelFormules.GetFormules();
                result.DataType = parametre;
            }
            parametre.RecalculerAffectationsSurRedemarrage  = m_chkRecalculerAffectations.Checked;
            parametre.ReevaluerInitialisationSurRedemarrage = m_chkReevaluerFormuleSurRedemarrage.Checked;
            return(result);
        }
示例#7
0
        public CResultAErreur AppliqueTo(CEtapeWorkflow etape, bool bIsRedemarrage)
        {
            CResultAErreur result = CResultAErreur.True;

            if (!bIsRedemarrage || RecalculerAffectationsSurRedemarrage)
            {
                CResultAErreurType <CAffectationsEtapeWorkflow> resAff = Affectations.CalculeAffectations(etape.Workflow);
                if (!resAff)
                {
                    result.EmpileErreur(resAff.Erreur);
                    return(result);
                }
                etape.Affectations = resAff.DataType;
            }

            CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(etape);

            if (FormuleInitialisation != null)
            {
                if (!bIsRedemarrage || ReevaluerInitialisationSurRedemarrage)
                {
                    result = FormuleInitialisation.Eval(ctx);
                }
            }
            return(result);
        }
示例#8
0
        //-------------------------------------------------------------------------------------
        public CResultAErreurType <CDataTableFastSerialize> GetDataDirect(CDataHotelQuery query)
        {
            CResultAErreurType <CDataTableFastSerialize> res = new CResultAErreurType <CDataTableFastSerialize>();

            res.DataType = CDataRoomManager.Instance.GetData(query);
            return(res);
        }
示例#9
0
        //-------------------------------------------------------
        private void m_menuWalk_Click(object sender, EventArgs e)
        {
            IDefinition definition = GetCurrent();

            if (definition != null)
            {
                if (m_connexion == null)
                {
                    if (!SetupConnexion())
                    {
                        return;
                    }
                }
                CResultAErreurType <IList <Variable> > result = m_connexion.Walk(definition.GetNumericalForm());
                if (!result)
                {
                    CFormAfficheErreur.Show(result.Erreur);
                }
                else
                {
                    CFormViewSNMPResult.ViewResult("Walk " + definition.Name,
                                                   result.DataType,
                                                   this,
                                                   definition.Tree);
                }
            }
        }
示例#10
0
        //----------------------------------
        public void GetSNMP()
        {
            IDefinition definition = GetCurrent();

            if (definition != null)
            {
                if (m_connexion == null)
                {
                    if (!SetupConnexion())
                    {
                        return;
                    }
                }
                List <uint> lstOID = new List <uint>(definition.GetNumericalForm());
                lstOID.Add(0);
                CResultAErreurType <Variable> result = m_connexion.Get(lstOID.ToArray());
                if (!result)
                {
                    CFormAfficheErreur.Show(result.Erreur);
                }
                else
                {
                    CFormViewSNMPResult.ViewResult("Get " + definition.Name,
                                                   result.DataType,
                                                   this,
                                                   definition.Tree);
                }
            }
        }
示例#11
0
        /// <summary>
        /// Retourne l'étape de ce type pour le workflow
        /// </summary>
        /// <param name="workflow"></param>
        /// <returns></returns>
        public CResultAErreurType <CEtapeWorkflow> CreateOrGetEtapeInCurrentContexte(CTypeEtapeWorkflow typeEtape)
        {
            CResultAErreurType <CEtapeWorkflow> result = new CResultAErreurType <CEtapeWorkflow>();

            //Vérifie que le workflow n'a pas déjà une étape de ce type
            if (typeEtape == null)
            {
                result.EmpileErreur(I.T("Create step need a step type|20076"));
                return(result);
            }
            //Vérifie que le workflow n'a pas déjà une étape de ce type
            CEtapeWorkflow etape          = GetEtapeForType(typeEtape);
            bool           bIsRedemarrage = true;

            if (etape == null)
            {
                etape = new CEtapeWorkflow(ContexteDonnee);
                etape.CreateNewInCurrentContexte();
                etape.Workflow  = this;
                etape.TypeEtape = typeEtape;
                bIsRedemarrage  = false;
            }
            CResultAErreur resTmp = typeEtape.ParametresInitialisation.AppliqueTo(etape, bIsRedemarrage);

            if (!resTmp)
            {
                result.EmpileErreur(resTmp.Erreur);
            }
            if (result)
            {
                result.DataType = etape;
            }
            return(result);
        }
示例#12
0
        private CResultAErreur PrepareImport(
            ref CConfigMappagesSmartImport config,
            ref DataTable tableSource)
        {
            CResultAErreur result = CResultAErreur.True;
            CResultAErreurType <CConfigMappagesSmartImport> resConfig = m_ctrlSetup.GetConfigFinale();

            if (!resConfig)
            {
                result.EmpileErreur(resConfig.Erreur);
                return(result);
            }
            config = resConfig.DataType;
            if (m_sessionImport.TableSource != null)
            {
                tableSource = m_sessionImport.TableSource;
            }
            else if (m_parametreLectureFichier != null)
            {
                result = m_parametreLectureFichier.LectureFichier(m_strNomFichierExemple);
                if (!result)
                {
                    return(result);
                }
                tableSource = result.Data as DataTable;
            }
            return(result);
        }
        //-----------------------------------------------------------------
        private void m_btnOk_Click(object sender, EventArgs e)
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_txtColumnName.Text.Trim().Length == 0)
            {
                result.EmpileErreur(I.T("Column name should not be empty|20049"));
            }
            CResultAErreurType <IDataHotelCalcul> res = null;

            if (m_editeurEnCours != null)
            {
                res = m_editeurEnCours.GetCalcul();
                if (!res)
                {
                    result.EmpileErreur(res.Erreur);
                }
            }
            if (!result)
            {
                CFormAlerte.Afficher(result.Erreur);
                return;
            }
            if (res != null)
            {
                m_colonne.Calcul = res.DataType;
            }
            m_colonne.ColumnName = m_txtColumnName.Text.Trim();
            DialogResult         = DialogResult.OK;
            Close();
        }
示例#14
0
        public CResultAErreurType <CListeParametresInspiration> MajChamps()
        {
            CResultAErreur result = CResultAErreur.True;
            CResultAErreurType <CListeParametresInspiration> resRetour = new CResultAErreurType <CListeParametresInspiration>();
            CListeParametresInspiration lst = new CListeParametresInspiration();

            if (CurrentItemIndex != null)
            {
                ItemControl.MajChamps();
            }
            foreach (CCustomizableListItem item in Items)
            {
                CParametreInspirationProprieteDeType parametre = item.Tag as CParametreInspirationProprieteDeType;
                if (parametre != null)
                {
                    result = parametre.VerifieDonnees();
                    if (!result)
                    {
                        resRetour.EmpileErreur(result.Erreur);
                        return(resRetour);
                    }
                    lst.Add(parametre);
                }
            }
            resRetour.DataType = lst;
            return(resRetour);
        }
示例#15
0
        /// ////////////////////////////////////////////////////////
        public CResultAErreurType <CObjetDonneeAIdNumeriqueAuto> CloneObjet(CObjetDonneeAIdNumeriqueAuto objetSource)
        {
            CResultAErreurType <CObjetDonneeAIdNumeriqueAuto> resObjet = new CResultAErreurType <CObjetDonneeAIdNumeriqueAuto>();
            CResultAErreur result = CResultAErreur.True;
            Dictionary <CObjetDonneeAIdNumeriqueAuto, CObjetDonneeAIdNumeriqueAuto> dicClones = new Dictionary <CObjetDonneeAIdNumeriqueAuto, CObjetDonneeAIdNumeriqueAuto>();

            resObjet = CloneObjet(objetSource.ContexteDonnee, objetSource, dicClones);
            if (!resObjet)
            {
                return(resObjet);
            }
            Dictionary <object, object> copie = new Dictionary <object, object>();

            foreach (KeyValuePair <CObjetDonneeAIdNumeriqueAuto, CObjetDonneeAIdNumeriqueAuto> kv in dicClones)
            {
                copie[kv.Key] = kv.Value;
            }
            foreach (CObjetDonneeAIdNumeriqueAuto objet in dicClones.Values)
            {
                if (objet.GetType().GetCustomAttributes(typeof(RefillAfterCloneAttribute), true).Length > 0)
                {
                    RefillAfterCloneAttribute.RefillAfterClone(objet, copie);
                }
            }
            return(resObjet);
        }
示例#16
0
        //-------------------------------------------------------
        public CResultAErreur GetDatas(CListeQuerySource sources)
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_bUseCache && m_tableCache != null && Query != null && Query.UseRuntimeCache)
            {
                result.Data = m_tableCache;
                return(result);
            }

            result = GetDatasHorsCalculees(sources);
            DataTable table = result.Data as DataTable;

            if (result && table != null)
            {
                AddDonneesCalculees(table);
            }
            if (m_postFilter != null && table != null)
            {
                CResultAErreurType <DataTable> resTable = m_postFilter.FiltreData(table, Query, sources);
                if (!resTable)
                {
                    result.EmpileErreur(resTable.Erreur);
                    return(result);
                }
                table       = resTable.DataType;
                result.Data = table;
            }

            if (m_bUseCache && table != null)
            {
                m_tableCache = table;
            }
            return(result);
        }
示例#17
0
        //-------------------------------------------------------------
        public CResultAErreurType <DataTable> GetTable(uint[] oid, params uint[][] colonnesAPrendre)
        {
            ISnmpConnexion cnxDisttante = GetConnexionDistante();

            if (cnxDisttante != null)
            {
                return(cnxDisttante.GetTable(oid, colonnesAPrendre));
            }

            CResultAErreurType <DataTable> resultTable = new CResultAErreurType <DataTable>();
            List <Variable> lstVars = new List <Variable>();

            try
            {
                resultTable.DataType = Messenger.ReadTable(m_version,
                                                           m_endPoint,
                                                           new OctetString(m_strCommunity),
                                                           new ObjectIdentifier(oid),
                                                           m_nTimeOut,
                                                           colonnesAPrendre);
            }
            catch (Exception e)
            {
                resultTable.EmpileErreur(new CErreurException(e));
            }
            return(resultTable);
        }
示例#18
0
        //-----------------------------------------------
        public CResultAErreurType <IList <Variable> > Walk(uint[] oid)
        {
            ISnmpConnexion cnxDisttante = GetConnexionDistante();

            if (cnxDisttante != null)
            {
                return(cnxDisttante.Walk(oid));
            }

            CResultAErreurType <IList <Variable> > resultList = new CResultAErreurType <IList <Variable> >();
            List <Variable> lstVars = new List <Variable>();

            try
            {
                int nResult = Messenger.Walk(m_version,
                                             m_endPoint,
                                             new OctetString(m_strCommunity),
                                             new ObjectIdentifier(oid),
                                             lstVars,
                                             m_nTimeOut,
                                             WalkMode.WithinSubtree);
                resultList.DataType = lstVars;
            }
            catch (Exception e)
            {
                resultList.EmpileErreur(new CErreurException(e));
            }
            return(resultList);
        }
示例#19
0
        //-----------------------------------------------
        public CResultAErreurType <IList <Variable> > Get(IList <Variable> variables)
        {
            ISnmpConnexion cnxDisttante = GetConnexionDistante();

            if (cnxDisttante != null)
            {
                return(cnxDisttante.Get(variables));
            }

            CResultAErreurType <IList <Variable> > result = new CResultAErreurType <IList <Variable> >();

            try
            {
                IList <Variable> lst = Messenger.Get(
                    m_version,
                    m_endPoint,
                    new OctetString(m_strCommunity),
                    variables,
                    m_nTimeOut);
                result.Data = lst;
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
示例#20
0
        //-----------------------------------------------------------------------------------------------------
        private void m_menuStartStep_Click(object sender, EventArgs e)
        {
            CEtapeWorkflow etape = EtapeSelectionnee;
            CWorkflow      wkf   = m_stackWorkflows.Peek();

            using (CContexteDonnee ctx = new CContexteDonnee(wkf.ContexteDonnee.IdSession, true, false))
            {
                wkf = wkf.GetObjetInContexte(ctx) as CWorkflow;
                CTypeEtapeWorkflow typeEtape = TypeEtapeSelectionnee;
                if (etape != null)
                {
                    typeEtape = etape.TypeEtape;
                }

                CResultAErreurType <CEtapeWorkflow> resEtape = wkf.CreateOrGetEtapeInCurrentContexte(typeEtape);
                if (!resEtape)
                {
                    CFormAlerte.Afficher(resEtape.Erreur);
                    return;
                }
                etape = resEtape.DataType;



                etape = etape.GetObjetInContexte(ctx) as CEtapeWorkflow;
                etape.InternalSetInfosDemarrageInCurrentContext();
                CResultAErreur result = ctx.SaveAll(true);
                if (!result)
                {
                    CFormAlerte.Afficher(result.Erreur);
                }
                Refresh();
            }
        }
        public CResultAErreurType <CAffectationsEtapeWorkflow> CalculeAffectations(CWorkflow workflow)
        {
            CResultAErreurType <CAffectationsEtapeWorkflow> resultAff = new CResultAErreurType <CAffectationsEtapeWorkflow>();

            resultAff.Result = true;

            CAffectationsEtapeWorkflow    affectations = new CAffectationsEtapeWorkflow();
            CContexteEvaluationExpression ctx          = new CContexteEvaluationExpression(workflow);

            foreach (CFormuleNommee formule in Formules)
            {
                CResultAErreur result = formule.Formule.Eval(ctx);
                if (result)
                {
                    if (result.Data is IAffectableAEtape)
                    {
                        affectations.AddAffectable(result.Data as IAffectableAEtape);
                    }
                    else if (result.Data is IEnumerable)
                    {
                        foreach (object obj in (IEnumerable)result.Data)
                        {
                            IAffectableAEtape a = obj as IAffectableAEtape;
                            if (a != null)
                            {
                                affectations.AddAffectable(a);
                            }
                        }
                    }
                }
            }
            resultAff.DataType = affectations;
            return(resultAff);
        }
示例#22
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(Process);

            result = FormuleElementACloner.Eval(ctx);
            if (!result)
            {
                return(result);
            }
            CObjetDonneeAIdNumeriqueAuto obj = result.Data as CObjetDonneeAIdNumeriqueAuto;

            if (obj == null)
            {
                result.EmpileErreur(I.T("Erreur while cloning object : source is null|20049"));
                return(result);
            }

            CResultAErreurType <CObjetDonneeAIdNumeriqueAuto> resultClone = OptionsClonage.CloneObjet(obj);

            /*
             *
             * Dictionary<CObjetDonneeAIdNumeriqueAuto, CObjetDonneeAIdNumeriqueAuto> dicClones = new Dictionary<CObjetDonneeAIdNumeriqueAuto, CObjetDonneeAIdNumeriqueAuto>();
             * result = CloneObjet(contexte.ContexteDonnee, obj, dicClones);
             * if (!result)
             *  return result;
             *
             * Dictionary<object,object> copie = new Dictionary<object,object>();
             * foreach ( KeyValuePair<CObjetDonneeAIdNumeriqueAuto, CObjetDonneeAIdNumeriqueAuto> kv in dicClones )
             *  copie[kv.Key] = kv.Value;
             * foreach (CObjetDonneeAIdNumeriqueAuto objet in dicClones.Values)
             * {
             *  if (objet.GetType().GetCustomAttributes(typeof(RefillAfterCloneAttribute), true).Length > 0)
             *  {
             *      RefillAfterCloneAttribute.RefillAfterClone(objet, copie);
             *  }
             * }*/
            if (!resultClone)
            {
                result.EmpileErreur(resultClone.Erreur);
            }


            if (resultClone && VariableResultat != null)
            {
                if (VariableResultat != null)
                {
                    Process.SetValeurChamp(VariableResultat, resultClone.DataType);
                }
            }

            CLienAction[] liens = GetLiensSortantHorsErreur();
            if (liens.Length > 0)
            {
                result.Data = liens[0];
            }
            return(result);
        }
示例#23
0
        public CResultAErreur DémarreWorkflow(CTypeEtapeWorkflow typeEtapeDebut, bool bStartImmediate)
        {
            CSessionClient   session = CSessionClient.GetSessionForIdSession(ContexteDonnee.IdSession);
            IInfoUtilisateur info    = session != null?session.GetInfoUtilisateur() : null;

            if (info != null)
            {
                //TESTDBKEYOK
                KeyManager = info.KeyUtilisateur;
            }
            CResultAErreur result = CResultAErreur.True;

            if (EtapesEnCours.Count != 0)
            {
                result.EmpileErreur(I.T("Workflow was already started|20073"));
                return(result);
            }
            if (typeEtapeDebut == null ||
                typeEtapeDebut.Workflow != TypeWorkflow//cas pourri : l'étape de début n'est pas valide pour ce workflow ça ne doit pas arriver
                )
            {
                if (TypeWorkflow == null)
                {
                    result.EmpileErreur(I.T("Workflow type should be set before it starts|20077"));
                    return(result);
                }
                typeEtapeDebut = TypeWorkflow.EtapeDemarrageDefaut;
                if (typeEtapeDebut == null)
                {
                    result.EmpileErreur(I.T("Workflow type @1 doesn't have any start point|20074",
                                            TypeWorkflow != null?TypeWorkflow.Libelle:"???"));
                    return(result);
                }
            }
            using (CContexteDonnee ctx = new CContexteDonnee(ContexteDonnee.IdSession, true, false))
            {
                ///Si bStartImmediate, travaille dans un contexte spécifique qui est sauvé tout de suite
                CContexteDonnee contexteDeTravail = bStartImmediate ? ctx : ContexteDonnee;
                CWorkflow       wkf = GetObjetInContexte(contexteDeTravail) as CWorkflow;
                typeEtapeDebut = typeEtapeDebut.GetObjetInContexte(contexteDeTravail) as CTypeEtapeWorkflow;
                CResultAErreurType <CEtapeWorkflow> resEtape = wkf.CreateOrGetEtapeInCurrentContexte(typeEtapeDebut);
                if (resEtape)
                {
                    CEtapeWorkflow etape = resEtape.DataType;
                    etape.DemandeDemarrageInCurrentContext(null);
                }
                else
                {
                    result.EmpileErreur(resEtape.Erreur);
                }
                IsRunning = true;
                RunGeneration++;
                if (result && bStartImmediate)
                {
                    result = ctx.SaveAll(true);
                }
            }
            return(result);
        }
示例#24
0
        //-----------------------------------------------------------------------------------
        public CResultAErreurType <CCAMLQuery> MajChamps()
        {
            CResultAErreurType <CCAMLQuery> res = new CResultAErreurType <CCAMLQuery>();

            m_query.RootItem = GetRootItem();
            res.DataType     = m_query;
            return(res);
        }
示例#25
0
        public CResultAErreur RecalculeParametresHotelPolling()
        {
            //Trouve le setup system
            List <CSnmpHotelPollingSetup> lstSetups = ParametresHotelPollingList;
            CSnmpHotelPollingSetup        setup     = null;

            foreach (CSnmpHotelPollingSetup s in lstSetups)
            {
                if (s.Id.StartsWith(CSnmpHotelPollingSetup.c_IdPollingSystem))
                {
                    setup = s;
                    break;
                }
            }
            if (setup == null)
            {
                CMemoryDb db = new CMemoryDb();
                setup = new CSnmpHotelPollingSetup(db);
                setup.CreateNew();
                setup.Id        = CSnmpHotelPollingSetup.c_IdPollingSystem + sc2i.common.CUniqueIdentifier.GetNew();
                setup.Libelle   = "System";
                setup.HotelPort = CSnmpPollingHotelClient.HotelPollingServerPort;
                lstSetups.Add(setup);
            }
            if (setup.HotelPort == 0)
            {
                setup.HotelPort = CSnmpPollingHotelClient.HotelPollingServerPort;
            }
            if (setup.HotelIp == null || setup.HotelIp.Length == 0)
            {
                setup.HotelIp = CSnmpPollingHotelClient.HotelPollingServerIp;
            }

            CListeSnmpHotelPolledData lstPolled = setup.PolledDatas;

            lstPolled.Clear();
            CResultAErreur result = CResultAErreur.True;

            foreach (CEntiteSnmp entite in EntitesSnmp)
            {
                CResultAErreurType <IEnumerable <CSnmpHotelPolledData> > res = entite.GetSnmpHotelPolledData();
                if (!res)
                {
                    result.EmpileErreur(res.Erreur);
                    result.EmpileErreur(I.T("Error in entity @1|20259", entite.Libelle));
                }
                else if (res.DataType is IEnumerable <CSnmpHotelPolledData> )
                {
                    foreach (CSnmpHotelPolledData data in res.DataType)
                    {
                        lstPolled.Add(data);
                    }
                }
            }
            setup.PolledDatas = lstPolled;
            CommitParametresHotelPolling();
            return(result);
        }
        //--------------------------------------------------------------------------
        public static CResultAErreur LinkProjetToWorkflowStep(CProjet projet,
                                                              CWorkflow workflow,
                                                              string strTypeEtape,
                                                              bool bSynchronizeStarts)
        {
            CResultAErreur     result    = CResultAErreur.True;
            CTypeEtapeWorkflow typeEtape = new CTypeEtapeWorkflow(projet.ContexteDonnee);

            if (!typeEtape.ReadIfExists(new CFiltreData(CObjetDonnee.c_champIdUniversel + "=@1",
                                                        strTypeEtape)))
            {
                result.EmpileErreur(I.T("Workflow step type @1 doesn't exists|20196", strTypeEtape));
                return(result);
            }
            if (typeEtape.Workflow.Id != workflow.TypeWorkflow.Id)
            {
                result.EmpileErreur(I.T("Workflow step type @1 doesn't belong to workflow type @2|20197"),
                                    strTypeEtape, workflow.TypeWorkflow.Libelle);
                return(result);
            }
            CBlocWorkflowProjet blocProjet = typeEtape.Bloc as CBlocWorkflowProjet;

            if (blocProjet == null)
            {
                result.EmpileErreur(I.T("Step type @1 is not a valid project step|20198",
                                        typeEtape.Libelle));
                return(result);
            }
            CResultAErreurType <CEtapeWorkflow> resEtape = workflow.CreateOrGetEtapeInCurrentContexte(typeEtape);

            if (!resEtape)
            {
                result.EmpileErreur(resEtape.Erreur);
                return(result);
            }
            if (resEtape.DataType == null)
            {
                result.EmpileErreur(I.T("Erreur while creating step for type '@1'|20199",
                                        typeEtape.Libelle));
                return(result);
            }
            CWorkflow sousWkf = blocProjet.GetOrCreateWorkflowInCurrentContexte(resEtape.DataType);

            if (sousWkf == null)
            {
                result.EmpileErreur(I.T("Erreur while creating workflow for stef @1|20200",
                                        resEtape.DataType.Libelle));
                return(result);
            }
            sousWkf.SetValeurChamp(blocProjet.IdChampProjet.Value, projet);
            projet.GanttId = blocProjet.GetGanttId(resEtape.DataType);
            return(SynchroniseWorkflow(
                       sousWkf,
                       projet,
                       projet.DateDebutReel != null && projet.DateFinRelle == null,
                       bSynchronizeStarts));
        }
示例#27
0
        //-------------------------------------------------------------------
        private void m_lnkImportMibs_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.Filter = I.T("Mib files (*.mib)|*.mib|All files (*.*)|*.*|20255");
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    StreamReader reader = new StreamReader(dlg.FileName, System.Text.Encoding.Default);
                    CResultAErreurType <IList <IModule> > resultModules = CSnmpMibModule.CompileFile(reader);
                    reader.Close();
                    if (resultModules)
                    {
                        using (CContexteDonnee ctx = CSc2iWin32DataClient.ContexteCourant.GetContexteEdition())
                        {
                            CListeObjetDonneeGenerique <CSnmpMibModule> lstModules = new CListeObjetDonneeGenerique <CSnmpMibModule>(ctx);
                            lstModules.AssureLectureFaite();
                            lstModules.InterditLectureInDB = true;
                            foreach (IModule module in resultModules.DataType)
                            {
                                //Cherche le module dans la liste des modules
                                lstModules.Filtre = new CFiltreData(CSnmpMibModule.c_champModuleId + "=@1",
                                                                    module.Name);
                                if (lstModules.Count == 0)
                                {
                                    CSnmpMibModule mib = new CSnmpMibModule(ctx);
                                    mib.CreateNewInCurrentContexte();
                                    mib.ModuleId  = module.Name;
                                    mib.ModuleMib = module;
                                    mib.Libelle   = module.Name;
                                }
                            }
                            CResultAErreur result = ctx.CommitEdit();
                            if (!result)
                            {
                                CFormAfficheErreur.Show(result.Erreur);
                            }
                            else
                            {
                                m_panelListe.RemplirGrille();
                            }
                        }
                    }
                    else
                    {
                        CFormAfficheErreur.Show(resultModules.Erreur);
                    }
                }
                catch (Exception ex)
                {
                    CResultAErreur result = CResultAErreur.True;
                    result.EmpileErreur(new CErreurException(ex));
                    CFormAfficheErreur.Show(result.Erreur);
                }
            }
        }
示例#28
0
        //--------------------------------------------------------------------------
        private CResultAErreur StartOrRestartProjet(CEtapeWorkflow etape)
        {
            CResultAErreur result = CResultAErreur.True;
            CResultAErreurType <CProjet> resProjet = CGestionnaireProjetsDeWorkflow.AssureProjetRunnable(etape, this);

            if (!resProjet)
            {
                result.EmpileErreur(resProjet.Erreur);
                return(result);
            }
            CProjet projet = resProjet.DataType;

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

            if (etape.DateDebut == null)
            {
                etape.DateDebut = DateTime.Now;
            }

            if (projet.ProjetsFils.Count == 0)
            {
                if (projet.DateDebutReel == null || GererIteration)
                {
                    projet.DateDebutReel = etape.DateDebut.Value;
                    projet.DateFinRelle  = null;
                }
                else if (!projet.HasOptionLienEtape(EOptionLienProjetEtape.StepKeepDates))
                {
                    projet.DateDebutReel = etape.DateDebut.Value;
                    projet.DateFinRelle  = null;
                }
            }
            CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(etape);

            foreach (CAffectationsProprietes affectation in AffectationsCreationEtDemarrage)
            {
                bool bAppliquer = affectation.FormuleCondition == null || affectation.FormuleCondition is C2iExpressionVrai;
                if (affectation.FormuleCondition != null)
                {
                    CResultAErreur res = affectation.FormuleCondition.Eval(ctxEval);
                    if (res && res.Data != null && CUtilBool.BoolFromString(res.Data.ToString()) == true)
                    {
                        bAppliquer = true;
                    }
                }
                if (bAppliquer)
                {
                    affectation.AffecteProprietes(projet, etape, new CFournisseurPropDynStd());
                }
            }
            System.Console.WriteLine("Démarrage projet " + projet.Libelle);
            return(result);
        }
示例#29
0
        public string GetFieldOID(int nIdChampCustom)
        {
            CResultAErreurType <string> res = GetFieldOIDWithEntitePourSupervision(nIdChampCustom, null);

            if (res)
            {
                return(res.DataType);
            }
            return(null);
        }
示例#30
0
        //-------------------------------------------------------
        public static CResultAErreurType <CMacro> FromVersion(CVersionDonnees version)
        {
            CResultAErreurType <CMacro> result = new CResultAErreurType <CMacro>();

            using (CContexteDonnee contexte = new CContexteDonnee(version.ContexteDonnee.IdSession, true, false))
            {
                contexte.SetVersionDeTravail(version.Id, false);
                CMacro macro = new CMacro();
                macro.m_contexteDonnee = version.ContexteDonnee;
                macro.Libelle          = version.Libelle;

                CVariableDynamiqueSysteme variable = new CVariableDynamiqueSysteme();
                variable.SetTypeDonnee(new CTypeResultatExpression(typeof(string), false));
                variable.Nom        = "CurrentElement";
                variable.IdVariable = m_strIdVariableCurrentElement;
                macro.AddVariable(variable);

                Dictionary <int, CMacroObjet> dicMacrosObjets = new Dictionary <int, CMacroObjet>();
                Dictionary <CObjetDonneeAIdNumerique, CMacroObjet> dicObjetToMacros = new Dictionary <CObjetDonneeAIdNumerique, CMacroObjet>();
                foreach (CVersionDonneesObjet vo in version.VersionsObjets)
                {
                    if (!typeof(CRelationElementAChamp_ChampCustom).IsAssignableFrom(vo.TypeElement) && vo.TypeElement.GetCustomAttributes(typeof(NoMacroAttribute), true).Length == 0)
                    {
                        CMacroObjet mo = new CMacroObjet(macro);
                        mo.TypeObjet     = vo.TypeElement;
                        mo.IdObjet       = vo.IdElement;
                        mo.TypeOperation = vo.TypeOperation;
                        macro.AddObjet(mo);

                        dicMacrosObjets[vo.Id] = mo;
                        CObjetDonneeAIdNumerique objet = Activator.CreateInstance(vo.TypeElement, new object[] { contexte }) as CObjetDonneeAIdNumerique;
                        if (objet.ReadIfExists(vo.IdElement))
                        {
                            dicObjetToMacros[objet] = mo;
                        }
                        mo.CreateVariable(objet);
                    }
                }
                foreach (CVersionDonneesObjet vo in version.VersionsObjets)
                {
                    if (!typeof(CRelationElementAChamp_ChampCustom).IsAssignableFrom(vo.TypeElement) && vo.TypeElement.GetCustomAttributes(typeof(NoMacroAttribute), true).Length == 0)
                    {
                        CMacroObjet    mo    = dicMacrosObjets[vo.Id];
                        CResultAErreur resMo = CResultAErreur.True;
                        resMo = mo.FillFromVersion(vo, contexte, dicObjetToMacros);
                        if (!resMo)
                        {
                            result.EmpileErreur(resMo.Erreur);
                        }
                    }
                }
                result.DataType = macro;
                return(result);
            }
        }