예제 #1
0
        ///////////////////////////////////////////////////////////////
        protected override CResultAErreur MyFillFromElementDeGraphe(CElementDeArbreOperationnel element)
        {
            CResultAErreur result = CResultAErreur.True;
            CElementDeArbreOperationnelEntite eltComposant = element as CElementDeArbreOperationnelEntite;

            if (eltComposant == null)
            {
                result.EmpileErreur(I.T("Bad element type|20030"));
                return(result);
            }
            CComposantDeGrapheReseau composant = eltComposant.Composant;

            IElementDeSchemaReseau eltAssocie = composant.GetElementAssocie(ContexteDonnee);

            ElementAssocie = null;
            if (eltAssocie is CSite)
            {
                ElementAssocie = CSpvSite.GetObjetSpvFromObjetTimosAvecCreation(eltAssocie as CSite);
            }
            else if (eltAssocie is CEquipementLogique)
            {
                ElementAssocie = CSpvEquip.GetObjetSpvFromObjetTimosAvecCreation(eltAssocie as CEquipementLogique);
            }
            else if (eltAssocie is CLienReseau)
            {
                ElementAssocie = CSpvLiai.GetObjetSpvFromObjetTimosAvecCreation(eltAssocie as CLienReseau);
            }
            if (ElementAssocie == null)
            {
                result.EmpileErreur(I.T("Can not associate element to Graph component|20031"));
                return(result);
            }
            return(result);
        }
예제 #2
0
파일: CSpvLiai.cs 프로젝트: ykebaili/Timos
        //  public void CopyFromLienReseau(CLienReseau lienReseau)
        public override void CopyFromObjetTimos(CLienReseau lienReseau)
        {
            CResultAErreur result = CanSupervise(lienReseau);

            if (!result)
            {
                throw new CExceptionErreur(result.Erreur);
            }
            NomTypeLiaison = lienReseau.TypeLienReseau.Libelle;
            Typeliaison    = CSpvTypliai.GetObjetSpvFromObjetTimos(lienReseau.TypeLienReseau) as CSpvTypliai;
            if (lienReseau.Site1 != null)
            {
                SiteOrigine = CSpvSite.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Site1);
            }
            if (lienReseau.Site2 != null)
            {
                SiteDestination = CSpvSite.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Site2);
            }

            if (lienReseau.Equipement1 != null)
            {
                EquipementOrigine = CSpvEquip.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Equipement1);
            }
            if (lienReseau.Equipement2 != null)
            {
                EquipementDestination = CSpvEquip.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Equipement2);
            }

            result = UpdateMasquagesEquipements();

            NomLiaison = lienReseau.Libelle;

            switch (lienReseau.Direction.Code)
            {
            case EDirectionLienReseau.UnVersDeux:
                Direction = new CSensLiaison(ESensLiaison.AVersB);
                break;

            case EDirectionLienReseau.DeuxVersUn:
                Direction = new CSensLiaison(ESensLiaison.BVersA);
                break;
            }

            /*UpdateSupportants();
             * UpdateSupportés();*/
        }
예제 #3
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur     result  = CResultAErreur.True;
            CFamilleEquipement famille = new CFamilleEquipement(contexte.ContexteDonnee);

            if (!famille.ReadIfExists(m_nIdFamilleEquipement))
            {
                result.EmpileErreur(I.T("Equipment type family @1 doesn't exists|20027", m_nIdFamilleEquipement.ToString()));
                return(result);
            }

            CListeObjetsDonnees lstTypes = new CListeObjetsDonnees(contexte.ContexteDonnee, typeof(CSpvTypeq));

            lstTypes.Filtre = new CFiltreData(CSpvTypeq.c_champSmtTypeEquipement_Id + " is null");
            foreach (CSpvTypeq typeEq in lstTypes.ToArrayList())
            {
                CTypeEquipement type = new CTypeEquipement(contexte.ContexteDonnee);
                type.CreateNewInCurrentContexte();
                type.Libelle             = typeEq.Libelle;
                type.Famille             = famille;
                typeEq.TypeEquipementSmt = type;
            }

            CListeObjetsDonnees lstObjets = new CListeObjetsDonnees(contexte.ContexteDonnee, typeof(CSpvEquip));

            lstObjets.Filtre = new CFiltreDataAvance(CSpvEquip.c_nomTable,
                                                     "HasNo(" + CSpvEquip.c_champSmtEquipementLogique_Id + ") and " +
                                                     "Has(TypeEquipement." + CSpvTypeq.c_champSmtTypeEquipement_Id + ") and " +
                                                     "has(" + CSpvSite.c_nomTable + "." + CSpvSite.c_champSmtSite_Id + ")");
            int nNbEquips = lstObjets.Count;
            int nEquip    = 0;

            if (contexte.IndicateurProgression != null)
            {
                contexte.IndicateurProgression.PushSegment(9, nNbEquips);
                contexte.SetInfoProgression(I.T("Transfering discovered equipments|20221"));
            }
            ArrayList lstEquips = lstObjets.ToArrayList();

            foreach (CSpvEquip equipSpv in lstEquips)
            {
                nEquip++;
                if (nEquip % 20 == 0 && contexte.IndicateurProgression != null)
                {
                    contexte.IndicateurProgression.SetValue(nEquip / 2);
                    contexte.SetInfoProgression((int)(nEquip / 2) + "/" + nNbEquips);
                }
                CSpvSite  siteSpv   = equipSpv.SpvSite;
                CSpvTypeq typeEqSpv = equipSpv.TypeEquipement;
                if (siteSpv != null && typeEqSpv != null)
                {
                    CTypeEquipement typeTimos = typeEqSpv.TypeEquipementSmt;
                    CSite           siteTimos = siteSpv.ObjetTimosAssocie;
                    if (typeTimos != null && siteTimos != null)
                    {
                        CEquipementLogique equipementTimos = new CEquipementLogique(contexte.ContexteDonnee);
                        equipementTimos.TypeEquipement = typeTimos;
                        equipementTimos.Site           = siteTimos;
                        equipementTimos.Libelle        = equipSpv.CommentairePourSituer;
                        equipSpv.ObjetTimosAssocie     = equipementTimos;
                    }
                }
            }
            foreach (CSpvEquip equipSpv in lstEquips)
            {
                nEquip++;
                if (nEquip % 20 == 0 && contexte.IndicateurProgression != null)
                {
                    contexte.IndicateurProgression.SetValue(nEquip / 2);
                    contexte.SetInfoProgression((int)(nEquip / 2) + "/" + nNbEquips);
                }
                CEquipementLogique equip = equipSpv.ObjetTimosAssocie;
                if (equipSpv.EquipementEnglobant != null)
                {
                    CEquipementLogique englobant = equipSpv.EquipementEnglobant.ObjetTimosAssocie;
                    if (englobant == null)
                    {
                        result = equipSpv.Delete(true);
                        if (!result)
                        {
                            return(result);
                        }
                    }
                    else
                    {
                        equip.EquipementLogiqueContenant = englobant;
                    }
                }
            }
            if (contexte.IndicateurProgression != null)
            {
                contexte.IndicateurProgression.PopSegment();
            }
            return(result);
        }
예제 #4
0
        public bool FormatMessAccesAlarme(CSpvLienAccesAlarme spvLienAccesAlarme, DataRowState rowState)
        {
            Int32  nIdTypeCARTE_GTR = 0, nIdTypeIP2PORT = 0, nIdTypeGSITE = 0;
            string strCategorieObjet = "";
            Int32  nIdObjet          = 0;
            bool   bEquipToSurv      = false;
            string strCodeSaisie;
            string strAddrIP;

            if (rowState == DataRowState.Added)
            {
                strCodeSaisie = "C";
            }
            else if (rowState == DataRowState.Modified)
            {
                strCodeSaisie = "M";
            }
            else if (rowState == DataRowState.Deleted)
            {
                strCodeSaisie = "S";
            }
            else
            {
                throw new Exception(I.T("DataRowState not provided for this function|50010"));
            }


            CSpvTypeq spvTypeq = new CSpvTypeq(ContexteDonnee);

            if (spvTypeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champTYPEQ_NOM + "=@1", CSpvTypeq.c_CARTE_GTR)))
            {
                nIdTypeCARTE_GTR = spvTypeq.Id;
            }

            if (spvTypeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champTYPEQ_NOM + "=@1", CSpvTypeq.c_GSITE)))
            {
                nIdTypeGSITE = spvTypeq.Id;
            }

            if (spvTypeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champTYPEQ_NOM + "=@1", CSpvTypeq.c_IP2PORT)))
            {
                nIdTypeIP2PORT = spvTypeq.Id;
            }

            CSpvAccesAlarme accesOne, accesTwo;

            accesOne = spvLienAccesAlarme.AccesAlarmeOne;
            accesTwo = spvLienAccesAlarme.AccesAlarmeTwo;
            CSpvEquip spvEqt  = spvLienAccesAlarme.SpvEquip;
            CSpvSite  spvSite = spvLienAccesAlarme.SpvSite;
            CSpvLiai  spvLiai = spvLienAccesAlarme.SpvLiai;

            if (rowState == DataRowState.Deleted)
            {
                if (accesOne.Row.RowState == DataRowState.Deleted)
                {
                    accesOne.VersionToReturn = DataRowVersion.Original;
                }

                if (accesTwo.Row.RowState == DataRowState.Deleted)
                {
                    accesTwo.VersionToReturn = DataRowVersion.Original;
                }

                if (spvEqt != null && spvEqt.Row.RowState == DataRowState.Deleted)
                {
                    spvEqt.VersionToReturn = DataRowVersion.Original;
                }

                if (spvSite != null && spvSite.Row.RowState == DataRowState.Deleted)
                {
                    spvSite.VersionToReturn = DataRowVersion.Original;
                }

                if (spvLiai != null && spvLiai.Row.RowState == DataRowState.Deleted)
                {
                    spvLiai.VersionToReturn = DataRowVersion.Original;
                }
            }

            if (accesOne == spvLienAccesAlarme.SpvAccesAlarmeSysteme0())
            {
                // Dans ce cas, seul le cas GSITE nous intéresse
                CSpvEquip spvEquip = new CSpvEquip(ContexteDonnee);
                if (spvEquip.ReadIfExists(new CFiltreData(CSpvEquip.c_champEQUIP_ID + "=@1", spvLienAccesAlarme.BindingId)))
                {
                    if (spvEquip.TypeEquipement.Id != nIdTypeGSITE)
                    {
                        return(false);
                    }
                    else
                    {
                        bEquipToSurv = spvEquip.ASuperviser;
                    }
                }
            }
            else
            {
                if (spvSite != null)
                {
                    strCategorieObjet = c_SITE;
                    nIdObjet          = spvSite.Id;
                    bEquipToSurv      = true;
                }
                else if (spvLiai != null)
                {
                    strCategorieObjet = c_LIAISON;
                    nIdObjet          = spvLiai.Id;
                    bEquipToSurv      = true;
                }
                else if (spvEqt != null)
                {
                    strCategorieObjet = c_EQUIP;
                    nIdObjet          = spvEqt.Id;
                    bEquipToSurv      = spvEqt.ASuperviser;
                    strAddrIP         = spvEqt.AdresseIP;
                }
                else
                {
                    throw new Exception(I.T("Father object not filled|50009"));
                }
            }

            if (!bEquipToSurv)
            {
                return(false);
            }

            string strMess = "";

            if (accesOne == spvLienAccesAlarme.SpvAccesAlarmeSysteme0())
            {
                // Concerne un accès alarme GSITE

                if (rowState == DataRowState.Deleted)
                {
                    strMess = string.Format("#9#7#5#S#{0}#{1}#",
                                            spvLienAccesAlarme.BindingId,
                                            spvEqt.CommentairePourSituer);
                }
                else
                {
                    strMess = string.Format("#9#11#5#{0}#{1}#{2}#{3}#{4}#{5}#{6}#",
                                            strCodeSaisie, spvLienAccesAlarme.BindingId,
                                            spvEqt.CommentairePourSituer,
                                            spvLienAccesAlarme.DureeMin, spvLienAccesAlarme.FreqNb,
                                            spvLienAccesAlarme.FreqPeriod, System.Convert.ToInt32(spvLienAccesAlarme.Surveiller));
                }
            }
            else if (accesTwo == spvLienAccesAlarme.SpvAccesAlarmeSysteme0())
            {
                // Concerne un accès alarme TRAP
                if (rowState == DataRowState.Deleted)
                {
                    strMess = string.Format("#9#8#5#S#{0}#{1}#{2}#",
                                            spvEqt.AdresseIP,
                                            spvEqt.Id, accesOne.TrapIdent);
                }
                else
                {
                    strMess = string.Format("#9#12#4#{0}#{1}#{2}#{3}#{4}#{5}#{6}#{7}#",
                                            strCodeSaisie, spvEqt.AdresseIP,
                                            spvEqt.Id,
                                            accesOne.TrapIdent,
                                            spvLienAccesAlarme.DureeMin, spvLienAccesAlarme.FreqNb,
                                            spvLienAccesAlarme.FreqPeriod, System.Convert.ToInt32(spvLienAccesAlarme.Surveiller));
                }
            }
            else if (accesTwo != null &&
                     accesTwo != spvLienAccesAlarme.SpvAccesAlarmeSysteme0())
            {
                // Concerne un accès alarme de type boucle

                // La donnée "A surveiller" a-t-elle changée
                bool bSurveillanceChangee =
                    (rowState == DataRowState.Added && spvLienAccesAlarme.Surveiller) ||
                    (rowState == DataRowState.Modified &&
                     (bool)spvLienAccesAlarme.Row[CSpvLienAccesAlarme.c_champALARMGEREE_TOSURV,
                                                  DataRowVersion.Original] != spvLienAccesAlarme.Surveiller);

                if (accesTwo.SpvEquip.TypeEquipement.Id == nIdTypeCARTE_GTR)
                {
                    // Le nom de l'équipement de collecte est de la forme
                    // IS xx/GTR yy
                    string strNomEquipCollecte =
                        accesTwo.SpvEquip.CommentairePourSituer;

                    if (rowState == DataRowState.Deleted)
                    {
                        strMess = string.Format("#9#9#2#S#{0}#{1}#{2}#{3}#",
                                                strCategorieObjet, nIdObjet,
                                                strNomEquipCollecte.Substring(3, 2),
                                                ((Convert.ToInt32(strNomEquipCollecte.Substring(10, 2)) - 1) * 48) +
                                                Convert.ToInt32(accesTwo.NomAcces));
                    }
                    else if (bSurveillanceChangee)
                    {
                        strMess = string.Format("#9#10#2#{0}#{1}#{2}#{3}#{4}#{5}#",
                                                strCodeSaisie, strCategorieObjet, nIdObjet,
                                                strNomEquipCollecte.Substring(3, 2),
                                                ((Convert.ToInt32(strNomEquipCollecte.Substring(10, 2)) - 1) * 48) +
                                                Convert.ToInt32(accesTwo.NomAcces),
                                                System.Convert.ToInt32(spvLienAccesAlarme.Surveiller));
                    }
                }
                else
                {
                    // IP2PORT ou IP2CHOICE ou autre EDC boucle de type IP (ex: NEC)
                    if (rowState == DataRowState.Deleted)
                    {
                        strMess = string.Format("#9#10#3#S#{0}#{1}#{2}#{3}#{4}#",
                                                strCategorieObjet, nIdObjet,
                                                accesTwo.SpvEquip.AdresseIP,
                                                accesTwo.SpvEquip.Id,
                                                accesTwo.NomAcces);
                    }
                    else
                    {
                        strMess = string.Format("#9#14#3#{0}#{1}#{2}#{3}#{4}#{5}#{6}#{7}#{8}#{9}#",
                                                strCodeSaisie, strCategorieObjet, nIdObjet,
                                                accesTwo.SpvEquip.AdresseIP,
                                                accesTwo.SpvEquip.Id,
                                                accesTwo.NomAcces,
                                                spvLienAccesAlarme.DureeMin, spvLienAccesAlarme.FreqNb,
                                                spvLienAccesAlarme.FreqPeriod, System.Convert.ToInt32(spvLienAccesAlarme.Surveiller));
                    }
                }
            }

            Message = strMess;
            return(true);
        }