Exemplo n.º 1
0
        private void FillDicsForNode(CElementDeArbreOperationnel node,
                                     CDictionnaireElementToNoeudArbre dicEquipementToNoeudArbreOp,
                                     CDictionnaireElementToNoeudArbre dicSiteToNoeudArbreOp,
                                     CDictionnaireElementToNoeudArbre dicLiaisonToNoeudArbreOp,
                                     CDictionnaireElementToNoeudArbre dicServiceToNoeudArbreOp)
        {
            CElementDeArbreOperationnelEntite noeudEntite = node as CElementDeArbreOperationnelEntite;

            if (noeudEntite != null)
            {
                try
                {
                    IElementDeSchemaReseau eltAssocie = noeudEntite.Composant.GetElementAssocie(m_base.ContexteDonnee);

                    if (eltAssocie is CEquipementLogique)
                    {
                        CSpvEquip equipement = CSpvEquip.GetObjetSpvFromObjetTimos((CEquipementLogique)eltAssocie);
                        if (equipement != null)
                        {
                            dicEquipementToNoeudArbreOp.Add(equipement.Id, noeudEntite);
                        }
                    }
                    else if (eltAssocie is CSite)
                    {
                        CSpvSite site = CSpvSite.GetObjetSpvFromObjetTimos((CSite)eltAssocie);
                        if (site != null)
                        {
                            dicSiteToNoeudArbreOp.Add(site.Id, noeudEntite);
                        }
                    }
                    else if (eltAssocie is CLienReseau)
                    {
                        CSpvLiai liaison = CSpvLiai.GetObjetSpvFromObjetTimos((CLienReseau)eltAssocie);
                        if (liaison != null)
                        {
                            dicLiaisonToNoeudArbreOp.Add(liaison.Id, noeudEntite);
                        }
                    }
                    else if (eltAssocie is CSchemaReseau)
                    {
                        CSpvSchemaReseau schema = CSpvSchemaReseau.GetObjetSpvFromObjetTimos((CSchemaReseau)eltAssocie);
                        if (schema != null)
                        {
                            dicServiceToNoeudArbreOp.Add(schema.Id, noeudEntite);
                        }
                    }
                }
                catch { }
            }

            // Fonction récursive sur les noeuds fils
            foreach (CElementDeArbreOperationnel nodeFils in node.Fils)
            {
                FillDicsForNode(nodeFils,
                                dicEquipementToNoeudArbreOp,
                                dicSiteToNoeudArbreOp,
                                dicLiaisonToNoeudArbreOp,
                                dicServiceToNoeudArbreOp);
            }
        }
Exemplo n.º 2
0
        public static void ShowArbreSpv(CSpvSchemaReseau spvSchema)
        {
            CFormTestSpvGraph form = new CFormTestSpvGraph();

            form.m_spvSchema = spvSchema;
            form.ShowDialog();
            form.Dispose();
        }
Exemplo n.º 3
0
        private void m_btnTestArbre_Click(object sender, EventArgs e)
        {
            CSpvSchemaReseau spvSchema = CSpvSchemaReseau.GetObjetSpvFromObjetTimos(SchemaReseau);

            if (spvSchema != null)
            {
                CFormTestSpvGraph.ShowArbreSpv(spvSchema);
            }
        }
Exemplo n.º 4
0
        public CSpvSchemaReseau GetSpvServiceByName(CContexteDonnee ctx)
        {
            CFiltreData filtre = new CFiltreData(CSpvSchemaReseau.c_champLibelle + "=@1",
                                                 Name);
            CSpvSchemaReseau spvService = new CSpvSchemaReseau(ctx);

            if (spvService.ReadIfExists(filtre))
            {
                return(spvService);
            }

            return(null);
        }
Exemplo n.º 5
0
        public CSpvSchemaReseau GetSpvService(CContexteDonnee contexteDonnee)
        {
            if (m_nId == 0 && Name.Length > 0)
            {
                return(GetSpvServiceByName(contexteDonnee));
            }


            CSpvSchemaReseau service = new CSpvSchemaReseau(contexteDonnee);

            if (service.ReadIfExists(m_nId))
            {
                return(service);
            }

            return(null);
        }
Exemplo n.º 6
0
        private void OnLstServicesDoubleClick(object sender, EventArgs e)
        {
            if (m_lstServices.SelectedIndices.Count > 0)
            {
                int index = m_lstServices.SelectedIndices[0];

                CSpvSchemaReseau serviceSpv = ((CInfoServiceAlarmeAffichee)m_lstServices.Items[index]).GetSpvServiceByName(m_ctxDonnee);

                if (serviceSpv != null)
                {
                    CSchemaReseau schema = serviceSpv.ObjetTimosAssocie;

                    if (schema != null)
                    {
                        CReferenceTypeForm refTypeForm = CFormFinder.GetRefFormToEdit(schema.GetType());
                        if (refTypeForm != null)
                        {
                            IFormNavigable frm = refTypeForm.GetForm(schema) as IFormNavigable;
                            Navigateur.AffichePage(frm);
                        }
                    }
                }
            }
        }
Exemplo n.º 7
0
        private void ReadData()
        {
            using (CContexteDonnee contexte = new CContexteDonnee(0, true, false))
            {
                CSpvEvenementReseau evt;
                if (m_spvAlarm == null)     // Init. à partir de l'événement réseau
                {
                    evt = new CSpvEvenementReseau(contexte);
                    if (evt.ReadIfExists(m_nIdSpvEvtAlarme))
                    {
                        m_spvAlarm = evt.SpvAlarme;
                    }
                    else
                    {
                        return;
                    }
                }
                else
                {
                    evt = m_spvAlarm.EvenementDebut;
                }

                CDivers div = new CDivers();

                m_lstTrapInfo     = new List <string>();
                m_lstInfoClients  = new List <CInfoClientAlarmeAffichee>();
                m_lstInfoServices = new List <CInfoServiceAlarmeAffichee>();

                m_nIdAlarmData = m_spvAlarm.Id;

                m_InfoAlarmGeree = new CInfoAlarmeGereeAffichee();
                if (evt.SpvAlarmgeree != null)
                {
                    m_InfoAlarmGeree.Id   = (int)evt.SpvAlarmgeree.Id;
                    m_InfoAlarmGeree.Name = evt.SpvAlarmgeree.Alarmgeree_Name;
                }

                if (m_spvAlarm.SpvSite != null)
                {
                    if (m_InfoSite == null)
                    {
                        m_InfoSite = new CInfoSiteAlarmeAffichee();
                    }
                    m_InfoSite.Id   = (int)m_spvAlarm.SpvSite.Id;
                    m_InfoSite.Name = m_spvAlarm.SpvSite.SiteNom;
                    if (m_spvAlarm.SpvSite.TypeSite != null)
                    {
                        m_InfoSite.TypeName = m_spvAlarm.SpvSite.TypeSite.TypeSiteNom;
                    }
                }

                else if (m_spvAlarm.SpvEquip != null)
                {
                    m_InfoEquip          = new CInfoEquipementAlarmeAffichee();
                    m_InfoEquip.Id       = (int)m_spvAlarm.EquipId;
                    m_InfoEquip.TypeName = m_spvAlarm.SpvEquip.TypeEquipement.Libelle;
                    m_InfoEquip.Name     = m_spvAlarm.SpvEquip.CommentairePourSituer;
                }

                else if (m_spvAlarm.SpvLiai != null)
                {
                    m_InfoLiai          = new CInfoLiaiAlarmeAffichee();
                    m_InfoLiai.Id       = (int)m_spvAlarm.LiaiId;
                    m_InfoLiai.TypeName = m_spvAlarm.SpvLiai.Typeliaison.Libelle;
                    m_InfoLiai.Name     = m_spvAlarm.SpvLiai.NomComplet;
                }

                //if (m_InfoSite == null)
                //    m_InfoSite = new CInfoSiteAlarmeAffichee();

                m_nIddeb    = evt.Id;
                m_stAlarmCl = evt.AlarmCategory;
                m_nNumObj   = evt.AlarmNumObj;
                m_InfoAlarmGeree.CodeAlarmEvent = (EAlarmEvent)m_spvAlarm.CodeEvenementX733;

                if (evt.TypeEvenementReseau == ETypeEvenementReseau.DebutAlarme)
                {
                    m_AlarmDate      = m_spvAlarm.DateDebut;
                    m_StartAlarmDate = m_AlarmDate;
                }
                else
                {
                    m_AlarmDate      = (System.DateTime)m_spvAlarm.DateFin;
                    m_StopAlarmDate  = m_AlarmDate;
                    m_StartAlarmDate = m_spvAlarm.DateDebut;
                }

                m_nGrave   = m_spvAlarm.CodeGravite;
                m_stNSeuil = m_spvAlarm.NomSeuilAlarme;
                m_nVSeuil  = m_spvAlarm.ValeurSeuilAlarme;
                m_stNumal  = evt.AlarmNumAl;
                m_nTexte   = evt.CodeAlarmNature;

                m_stCommentaire = m_spvAlarm.Commententaire;
                m_stInfo        = evt.AlarmInfo;

                if (m_spvAlarm.SpvLienAccesAlarme != null)
                {
                    m_bAAcquitter = (bool)m_spvAlarm.SpvLienAccesAlarme.Acquitter;
                    m_bSonne      = (bool)m_spvAlarm.SpvLienAccesAlarme.SonActive;
                }

                if (evt.SpvAlarmgeree != null)
                {
                    m_InfoAlarmGeree.CodeRingType = evt.SpvAlarmgeree.CodeAlarmgereeTypeSon;
                }
                m_bCommut = evt.AlarmCommut;

                m_nIdSpvEvtAlarme = evt.Id;
                if (evt.ElementGereNomSite != null && evt.ElementGereNomSite.Length > 0)
                {
                    if (m_InfoSite == null)
                    {
                        m_InfoSite = new CInfoSiteAlarmeAffichee();
                    }
                    m_InfoSite.Name = evt.ElementGereNomSite;
                }
                m_InfoAlarmGeree.Name = m_spvAlarm.NomAlarmeGeree;

                //string stProgConcNom = m_spvAlarm.ProgrammesConcernes;
                if (m_spvAlarm.ServicesConcernes != null)
                {
                    foreach (System.Int32 nServiceId in m_spvAlarm.ServicesConcernes)
                    {
                        CInfoServiceAlarmeAffichee serviceAff = new CInfoServiceAlarmeAffichee();
                        serviceAff.Id = nServiceId;
                        CSpvSchemaReseau service = serviceAff.GetSpvService(contexte);
                        serviceAff.Name = service.Libelle;
                        m_lstInfoServices.Add(serviceAff);
                    }
                }


                if (m_spvAlarm.ClientsConcernes != null)
                {
                    foreach (System.Int32 nClientId in m_spvAlarm.ClientsConcernes)
                    {
                        CInfoClientAlarmeAffichee clientAff = new CInfoClientAlarmeAffichee();
                        clientAff.Id = nClientId;
                        CSpvClient client = clientAff.GetSpvClient(contexte);
                        clientAff.Name = client.CLIENT_NOM;
                        m_lstInfoClients.Add(clientAff);
                    }
                }

                if (m_spvAlarm.ProgsOper != null)
                {
                    CInfoServiceAlarmeAffichee infoService;
                    for (int i = 0; i < m_lstInfoServices.Count; i++)
                    {
                        infoService = m_lstInfoServices[i];
                        if (m_spvAlarm.ProgsOper.Length > i)
                        {
                            infoService.EtatOper = m_spvAlarm.ProgsOper[i];
                        }
                    }
                }

                m_stBindingVarInfo = m_spvAlarm.GetBindingVarInfo();
                FillTrapInfo();

                //m_bAcquittee = (m_spvAlarm.Acquittee == null) ? false : m_spvAlarm.Acquittee;
                m_bAcquittee = m_spvAlarm.Acquittee;

                m_bLectureFaite = true;
            }
        }
Exemplo n.º 8
0
        //////////////////////////////////////////////////////////////////
        private static void SynchroSchemaToSpv(
            CContexteDonnee contexte,
            Hashtable tableData,
            ref CResultAErreur result)
        {
            if (!result)
            {
                return;
            }
            //Empèche de passer plusieurs fois
            if (tableData.ContainsKey(typeof(CSynchroniseurSchemaEtGraphe)))
            {
                return;
            }
            //Pour empecher de passer plusieurs fois
            tableData[typeof(CSynchroniseurSchemaEtGraphe)] = true;

            //S'assure que les liens sont biens créés et que leurs schémas aussi !
            CSpvLiaiServeur.PropagerCLienReseau(contexte, tableData, ref result);
            if (!result)
            {
                return;
            }
            //Crée les services correspondants aux schémas modifiés

            //Toute modification d'un schéma est une modification du schéma auquel il appartient
            CListeObjetsDonnees lstSchemas = new CListeObjetsDonnees(contexte, typeof(CSchemaReseau), false);

            lstSchemas.InterditLectureInDB = true;
            foreach (CSchemaReseau schema in lstSchemas.ToArrayList())
            {
                CSchemaReseau tmp = schema;
                while (tmp != null && tmp.Row.RowState == DataRowState.Modified)
                {
                    tmp = tmp.SchemaParent;
                    if (tmp != null)
                    {
                        tmp.ForceChangementSyncSession();
                    }
                }
            }

            DataTable table = contexte.Tables[CSchemaReseau.c_nomTable];

            if (table == null)
            {
                //S'il n'y a pas de schéma, mais qu'il y a des éléments de schéma,
                //force la vérification des schémas

                if (contexte.Tables.Contains(CElementDeSchemaReseau.c_nomTable))
                {
                    table = contexte.GetTableSafe(CSchemaReseau.c_nomTable);
                }
            }
            if (table != null)
            {
                #region Recherche des schémas modifiés
                ArrayList lst = new ArrayList(table.Rows);
                //Cherche les schémas à vérifier
                Dictionary <DataRow, bool> dicSchemasAVerifier = new Dictionary <DataRow, bool>();
                foreach (DataRow row in lst)
                {
                    if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added)
                    {
                        dicSchemasAVerifier[row] = true;
                    }
                }
                DataTable tableElts = contexte.Tables[CElementDeSchemaReseau.c_nomTable];
                if (tableElts != null)
                {
                    lst = new ArrayList(tableElts.Rows);
                    foreach (DataRow row in lst)
                    {
                        if (row.RowState == DataRowState.Added || row.RowState == DataRowState.Modified || row.RowState == DataRowState.Deleted)
                        {
                            CElementDeSchemaReseau elt = new CElementDeSchemaReseau(row);
                            if (row.RowState == DataRowState.Deleted)
                            {
                                elt.VersionToReturn = DataRowVersion.Original;
                            }
                            CSchemaReseau schema = elt.SchemaReseau;
                            if (schema != null && schema.IsValide())
                            {
                                dicSchemasAVerifier[schema.Row] = true;
                            }
                            while (schema != null && schema.IsValide() && schema.SchemaParent != null)
                            {
                                dicSchemasAVerifier[schema.SchemaParent.Row] = true;
                                schema = schema.SchemaParent;
                            }
                        }
                    }
                }
                #endregion

                //Passe sur tous les schémas modifiés
                foreach (DataRow row in dicSchemasAVerifier.Keys)
                {
                    #region Création du service, création des cablages
                    CSchemaReseau schema = new CSchemaReseau(row);
                    //Synchronisation du service avec le schéma
                    CSpvSchemaReseau spvSchema = CSpvSchemaReseau.GetObjetSpvFromObjetTimosAvecCreation(schema);

                    //Si le schéma correspond à un lien, force la modification de ce lien
                    //Pour passer dans le traitement avant sauvegarde du lien
                    if (schema.LienReseau != null)
                    {
                        if (schema.LienReseau.Row.RowState == DataRowState.Unchanged)
                        {
                            schema.LienReseau.ForceChangementSyncSession();//Force la modification du lien pour qu'il soit resynchronisé
                        }
                    }
                    #endregion
                }
            }



            //Pour tous les schémas qui ont des éléments modifiés, s'assure que les
            //Graphes des services concernés sont à jour
            //Id de schéma -> true
            Dictionary <int, bool> schemasAGrapheObsolete = new Dictionary <int, bool>();
            table = contexte.Tables[CElementDeSchemaReseau.c_nomTable];
            if (table != null)
            {
                ArrayList lstRows = new ArrayList(table.Rows);
                foreach (DataRow row in lstRows)
                {
                    if (row.RowState == DataRowState.Added || row.RowState == DataRowState.Deleted)
                    {
                        CElementDeSchemaReseau elt     = new CElementDeSchemaReseau(row);
                        DataRowVersion         version = DataRowVersion.Current;
                        if (row.RowState == DataRowState.Deleted)
                        {
                            version = DataRowVersion.Original;
                        }
                        schemasAGrapheObsolete[(int)row[CElementDeSchemaReseau.c_champIdSchemaReseauAuquelJappartiens, version]] = true;
                    }
                }
            }
            table = contexte.Tables[CSchemaReseau.c_nomTable];
            if (table != null)
            {
                ArrayList lstRows = new ArrayList(table.Rows);
                foreach (DataRow row in lstRows)
                {
                    if (row.RowState == DataRowState.Added || row.RowState == DataRowState.Modified)
                    {
                        schemasAGrapheObsolete[(int)row[CSchemaReseau.c_champId]] = true;
                    }
                }
            }

            CBaseGraphesReseau baseGraphes = new CBaseGraphesReseau();
            foreach (int nIdSchema in schemasAGrapheObsolete.Keys)
            {
                CSchemaReseau schema = new CSchemaReseau(contexte);
                if (
                    schema.ReadIfExists(nIdSchema) &&
                    schema.IsValide() &&
                    (schema.SchemaParent == null || schema.SiteApparenance != null)) //Ne calcule pas les graphes des schémas fils, ils sont déjà integrés dans le graphe du schéma parent!
                {
                    CSpvSchemaReseau spvSchema = CSpvSchemaReseau.GetObjetSpvFromObjetTimosAvecCreation(schema);
                    if (spvSchema != null)
                    {
                        result = spvSchema.RecalculeArbreOperationnelInContexte(baseGraphes);
                        if (!result)
                        {
                            return;
                        }
                    }
                }
            }
        }
Exemplo n.º 9
0
        public void InitFromSchema(CSchemaReseau schema)
        {
            m_nIdSchemaReseau = schema.Id;
            m_schema          = schema;

            CSpvSchemaReseau schemaSPV = CSpvSchemaReseau.GetObjetSpvFromObjetTimos(schema);

            if (schemaSPV != null)
            {
                m_nIdSchemaReseauSpv = schemaSPV.Id;
            }

            CListeObjetsDonnees lstElements = schema.ElementsDeSchema;

            lstElements.ReadDependances(
                "SchemaReseauInclu",
                "SchemaReseauContenu");
            //Charge les données SPV
            AssureRelationsToSpv();
            CListeObjetsDonnees lstTmp = lstElements.GetDependances("Site");

            lstTmp.GetDependances(m_relationFromSiteSpvToSite).AssureLectureFaite();

            lstTmp = lstElements.GetDependances("EquipementLogique");
            lstTmp.GetDependances(m_relationFromEquipementSpvToEquipement).AssureLectureFaite();

            lstTmp = lstElements.GetDependances("LienReseau");
            lstTmp.GetDependances(m_relationFromLiaisonSpvToLiaison).AssureLectureFaite();

            //CSpvService service = CSpvService.GetObjetSpvFromObjetTimos(schema);

            foreach (CElementDeSchemaReseau elt in lstElements)
            {
                IElementDeSchemaReseau elementFils = elt.ElementAssocie;
                if (elementFils != null)
                {
                    CInfoElementDeSchemaSupervise fils = null;
                    if (elementFils is CSite)
                    {
                        fils = new CInfoSiteDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1);
                    }
                    if (elementFils is CLienReseau)
                    {
                        fils = new CInfoLienDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1);
                    }
                    if (elementFils is CElementDeSchemaReseau)
                    {
                        fils = new CInfoEquipementDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1);
                    }
                    if (elementFils is CSchemaReseau)
                    {
                        fils = new CInfoSchemaDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1);
                    }
                    if (elementFils is CEquipementLogique)
                    {
                        fils = new CInfoEquipementDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1);
                    }
                    if (elementFils != null)
                    {
                        fils.InitFromElementDeSchema(elt);
                        m_listeFils.Add(fils);
                    }
                }
            }

            PrepareSupervisionEtatOperationnel(schema);
            CalculArbreOperationnel();
        }
Exemplo n.º 10
0
 //-------------------------------------------------------------------------
 public CFormEditSpvProg(CSpvSchemaReseau prog, CListeObjetsDonnees liste)
     : base(prog, liste)
 {
     // Cet appel est requis par le Concepteur Windows Form.
     InitializeComponent();
 }
Exemplo n.º 11
0
 //-------------------------------------------------------------------------
 public CFormEditSpvProg(CSpvSchemaReseau prog)
     : base(prog)
 {
     // Cet appel est requis par le Concepteur Windows Form.
     InitializeComponent();
 }