예제 #1
0
        //----------------------------------------------------------------------
        public void TiagSetSiteKeys(object[] lstCles)
        {
            CSite site = new CSite(ContexteDonnee);

            if (site.ReadIfExists(lstCles))
            {
                Site = site;
            }
        }
예제 #2
0
        public override IElementDeSchemaReseau GetElementAssocie(CContexteDonnee contexte)
        {
            CSite site = new CSite(contexte);

            if (site.ReadIfExists(IdSite))
            {
                return(site);
            }
            return(null);
        }
예제 #3
0
        //------------------------------------------------------------------------------------
        /// <summary>
        /// Assure l'exostance d'un Host partir des données fournies.
        /// Créé l'équipemtn logique du bon type si le Host n'existe pas
        /// </summary>
        /// <param name="strHostId"></param>
        /// <param name="strType"></param>
        /// <param name="strName"></param>
        /// <returns></returns>
        private static CResultAErreur AssureHostExiste(string strHostId, string strType, string strName, CContexteDonnee contexte)
        {
            CResultAErreur result = CResultAErreur.True;
            // Vérifie si le host existe ans Timos

            CTypeEquipement typeEquipement = new CTypeEquipement(contexte);

            result = CCamusatQowisioData.GetEquipementLogiqueFromQowisioId(strHostId, contexte);
            if (!result)
            {
                return(result);
            }
            CEquipementLogique qowisioBox = result.Data as CEquipementLogique;

            if (strType == "SITE" && typeEquipement.ReadIfExists(CCamusatQowisioData.c_nIdTypeEquipementQowisioVirtualSite))
            {
                // C'est trouvé, rien à faire de plus
            }
            else if (strType == "PICKUP" && typeEquipement.ReadIfExists(CCamusatQowisioData.c_nIdTypeEquipementQowisioBoxVehicule))
            {
                // Trouvé
            }
            else
            {
                result.EmpileErreur("No Equipment Type found for Host Id : " + strHostId);
                return(result);
            }

            if (qowisioBox == null)
            {
                // Créer un nouvel equipement logique Timos
                CSite siteAwaitingElements = new CSite(contexte);
                if (siteAwaitingElements.ReadIfExists(CCamusatQowisioData.c_nIdSiteQowisionAwaitingElements))
                {
                    qowisioBox = new CEquipementLogique(contexte);
                    qowisioBox.CreateNewInCurrentContexte();
                    qowisioBox.TypeEquipement = typeEquipement;
                    qowisioBox.Site           = siteAwaitingElements;
                    qowisioBox.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosQowisioId, strHostId);
                    qowisioBox.Libelle = strName;
                }
                else
                {
                    result.EmpileErreur("No Site found for awaiting elements. Host Id :  " + strHostId);
                    return(result);
                }
            }
            else
            {
                qowisioBox.TypeEquipement = typeEquipement;
            }

            result.Data = qowisioBox;
            return(result);
        }
예제 #4
0
 //------------------------------------------------------------
 private void m_txtSelectElementAInterventions_OnSelectedObjectChanged(object sender, EventArgs e)
 {
     m_elementAIntervention = (IElementAIntervention)m_txtSelectElementAInterventions.ElementSelectionne;
     if (m_elementAIntervention != null)
     {
         CSite site = new CSite(m_contexteDonnee);
         site.ReadIfExists(m_elementAIntervention.Id);
         m_elementAIntervention = site;
     }
     m_fournisseurEntreesPlanning.ClearElementsAIntervention();
     m_fournisseurEntreesPlanning.AddElementAIntervention(m_elementAIntervention);
     m_controlPlanning.Refresh();
 }
        //---------------------------------------------------
        public CSite GetSite(int nId)
        {
            if (m_contrat == null)
            {
                return(null);
            }
            CSite site = new CSite(m_contrat.ContexteDonnee);

            if (site.ReadIfExists(nId))
            {
                return(site);
            }
            return(null);
        }
예제 #6
0
파일: CContrat.cs 프로젝트: ykebaili/Timos
        public CContrat_Site GetRelationSite(int nIdSite, bool bAvecCreation)
        {
            CContrat_Site ct = GetRelationSite(nIdSite);

            if (ct == null && bAvecCreation)
            {
                CSite site = new CSite(ContexteDonnee);
                if (site.ReadIfExists(nIdSite))
                {
                    ct = new CContrat_Site(ContexteDonnee);
                    ct.CreateNewInCurrentContexte();
                    ct.Site    = site;
                    ct.Contrat = this;
                }
            }
            return(ct);
        }
예제 #7
0
        //-----------------------------------------------------------------------------------------
        /// <summary>
        /// Assure l'existance d'une Fuel Probe partir des données fournies.
        /// Créé l'équipemtn logique du bon type si le Host n'existe pas
        /// </summary>
        /// <param name="strHostId"></param>
        /// <param name="strType"></param>
        /// <param name="strName"></param>
        /// <returns></returns>
        private static CResultAErreur AssureProbeExiste(CEquipementLogique parentQowisioBox, string strProbeId, string strTankShape, string strTankDimensions, string strTankCapacity, string strType, CContexteDonnee contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            if (parentQowisioBox == null)
            {
                result.EmpileErreur("Can not create Qowisio Fuel Probe Id = " + strProbeId + " because parent Qowisio Box is nul");
                return(result);
            }

            result = CCamusatQowisioData.GetEquipementLogiqueFromQowisioId(strProbeId, contexte);
            if (!result)
            {
                return(result);
            }
            CEquipementLogique qowisioFuelProbe = result.Data as CEquipementLogique;

            if (qowisioFuelProbe == null)
            {
                // Créer un nouvel equipement logique Timos
                CSite siteAwaitingElements = new CSite(contexte);
                if (siteAwaitingElements.ReadIfExists(CCamusatQowisioData.c_nIdSiteQowisionAwaitingElements))
                {
                    CTypeEquipement typeEquipement = new CTypeEquipement(contexte);
                    if (typeEquipement.ReadIfExists(CCamusatQowisioData.c_nIdTypeEquipementQowisioFuelProbe))
                    {
                        qowisioFuelProbe = new CEquipementLogique(contexte);
                        qowisioFuelProbe.CreateNewInCurrentContexte();
                        qowisioFuelProbe.TypeEquipement             = typeEquipement;
                        qowisioFuelProbe.EquipementLogiqueContenant = parentQowisioBox;
                        qowisioFuelProbe.Site    = siteAwaitingElements; // Site des equipements logiques en attente d'affectation
                        qowisioFuelProbe.Libelle = "Fuel Probe " + strProbeId;
                        result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosQowisioId, strProbeId);
                        if (result)
                        {
                            result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelProbeAssociatedTank, null); // Relation vers Tank
                        }
                        else
                        {
                            return(result);
                        }
                    }
                    else
                    {
                        result.EmpileErreur("No Equipment Type found for Fuel Probe Id : " + strProbeId);
                        return(result);
                    }
                }
                else
                {
                    result.EmpileErreur("No Site found for awaiting elements. Host Id :  " + strProbeId);
                    return(result);
                }
            }
            else
            {
                if (qowisioFuelProbe.EquipementLogiqueContenant != parentQowisioBox)
                {
                    qowisioFuelProbe.EquipementLogiqueContenant = parentQowisioBox;
                    result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelProbeAssociatedTank, null); // Relation vers Tank
                    if (!result)
                    {
                        return(result);
                    }
                }
            }
            if (qowisioFuelProbe != null)
            {
                //  Maj champs de fuel probe (equipement logique)
                result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankShape, strTankShape);
                if (result)
                {
                    result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankDimensions, strTankDimensions);
                }
                if (result)
                {
                    result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankCapacity, strTankCapacity);
                }
                if (result)
                {
                    result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelProbeType, strType);
                }

                if (!result)
                {
                    return(result);
                }

                // Maj champs de Tank (equipement physique)
                CEquipement tank = qowisioFuelProbe.GetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelProbeAssociatedTank) as CEquipement;
                if (tank != null)
                {
                    result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankShape, strTankShape);
                    if (result)
                    {
                        result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankDimensions, strTankDimensions);
                    }
                    if (result)
                    {
                        result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankCapacity, strTankCapacity);
                    }
                }
            }

            result.Data = qowisioFuelProbe;
            return(result);
        }
예제 #8
0
        //----------------------------------------------------
        /// <summary>
        /// Remplit ou met à jour l'alarme à partir de données
        /// issues d'un service de médiation
        /// </summary>
        /// <param name="alarme"></param>
        public void FillFromLocalAlarmeFromMediation(CLocalAlarme alarme)
        {
            Libelle   = alarme.Libelle;
            Cle       = alarme.GetKey();
            AlarmId   = alarme.Id;
            EtatCode  = (int)alarme.EtatCode;
            DateDebut = alarme.DateDebut;
            DateFin   = alarme.DateFin;
            CTypeAlarme ta = new CTypeAlarme(ContexteDonnee);

            if (ta.ReadIfExists(Int32.Parse(alarme.TypeAlarme.Id)))
            {
                TypeAlarme = ta;
            }
            else
            {
                throw new Exception(I.T("Alarm type @1 doesn't exists|20104", alarme.TypeAlarme.Libelle));
            }

            Site = null;
            EquipementLogique = null;
            LienReseau        = null;
            EntiteSnmp        = null;
            //Site
            if (alarme.SiteId != null)
            {
                /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CSite), alarme.SiteId);
                 * if (nId != null)
                 *  Row[CSite.c_champId] = nId.Value;*/
                CSite site = new CSite(ContexteDonnee);
                if (site.ReadIfExists(alarme.SiteId))
                {
                    Site = site;
                }
            }
            if (alarme.EquipementId != null)
            {
                /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CEquipementLogique), alarme.EquipementId);
                 * if (nId != null)
                 *  Row[CEquipementLogique.c_champId] = nId.Value;*/
                CEquipementLogique eqt = new CEquipementLogique(ContexteDonnee);
                if (eqt.ReadIfExists(alarme.EquipementId))
                {
                    EquipementLogique = eqt;
                }
            }
            if (alarme.LienId != null)
            {
                /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CLienReseau), alarme.LienId);
                 * if (nId != null)
                 *  Row[CLienReseau.c_champId] = nId.Value;*/
                CLienReseau lien = new CLienReseau(ContexteDonnee);
                if (lien.ReadIfExists(alarme.LienId))
                {
                    LienReseau = lien;
                }
            }
            if (alarme.EntiteSnmpId != null)
            {
                /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CEntiteSnmp), alarme.EntiteSnmpId);
                 * if (nId != null)
                 *  Row[CEntiteSnmp.c_champId] = nId.Value;*/
                CEntiteSnmp entite = new CEntiteSnmp(ContexteDonnee);
                if (entite.ReadIfExists(alarme.EntiteSnmpId))
                {
                    EntiteSnmp = entite;
                }
            }
            IsHS = alarme.IsHS;
            if (alarme.IdSeverite != null)
            {
                CSeveriteAlarme severite = new CSeveriteAlarme(ContexteDonnee);
                if (severite.ReadIfExists(Int32.Parse(alarme.IdSeverite)))
                {
                    Severite = severite;
                }
            }
            if (alarme.MasquagePropre != null)
            {
                CParametrageFiltrageAlarmes parametreFiltre = new CParametrageFiltrageAlarmes(ContexteDonnee);
                if (parametreFiltre.ReadIfExists(Int32.Parse(alarme.MasquagePropre.Id)))
                {
                    MasquagePropre = parametreFiltre;
                }
            }
            else
            {
                MasquagePropre = null;
            }
            foreach (CChampCustom champ in ta.TousLesChampsAssocies)
            {
                object val = alarme.GetValeurChamp(champ.Id.ToString());
                if (val != null)
                {
                    SetValeurChamp(champ.Id, val);
                }
            }
        }
예제 #9
0
        public CResultAErreur SetParametres(Dictionary <string, object> dicParametres)
        {
            CResultAErreur result = CResultAErreur.True;
            object         valeur = null;

            if (dicParametres.TryGetValue(c_parametreIdIntervention, out valeur))
            {
                if (valeur is int)
                {
                    CIntervention intervention = new CIntervention(CSc2iWin32DataClient.ContexteCourant);
                    if (intervention.ReadIfExists((int)valeur))
                    {
                        InitForIntervention(intervention);
                    }
                }
            }

            List <IRessourceEntreePlanning> lstResourcesAAfficher = new List <IRessourceEntreePlanning>();

            if (dicParametres.TryGetValue(c_parametreIdActeur, out valeur))
            {
                if (valeur is int)
                {
                    CActeur acteur = new CActeur(CSc2iWin32DataClient.ContexteCourant);
                    if (acteur.ReadIfExists((int)valeur))
                    {
                        lstResourcesAAfficher.Add(acteur);
                    }
                }
            }
            if (dicParametres.TryGetValue(c_parametreIdSite, out valeur))
            {
                if (valeur is int)
                {
                    CSite site = new CSite(CSc2iWin32DataClient.ContexteCourant);
                    if (site.ReadIfExists((int)valeur))
                    {
                        m_panelTop.ShowElementAIntervention(site);
                    }
                }
            }
            if (dicParametres.TryGetValue(c_parametreRessource, out valeur))
            {
                if (valeur is int)
                {
                    CRessourceMaterielle res = new CRessourceMaterielle(CSc2iWin32DataClient.ContexteCourant);
                    if (res.ReadIfExists((int)valeur))
                    {
                        lstResourcesAAfficher.Add(res);
                    }
                }
            }
            if (dicParametres.TryGetValue(c_parametreIdListeActeurs, out valeur))
            {
                if (valeur is int)
                {
                    CListeEntites lstActeurs = new CListeEntites(CSc2iWin32DataClient.ContexteCourant);
                    if (lstActeurs.ReadIfExists((int)valeur))
                    {
                        foreach (CObjetDonnee objet in lstActeurs.ElementsLies)
                        {
                            if (objet is CActeur)
                            {
                                lstResourcesAAfficher.Add(objet as CActeur);
                            }
                        }
                    }
                }
            }
            if (dicParametres.TryGetValue(c_parametreIdListeInterventions, out valeur))
            {
                if (valeur is int)
                {
                    CListeEntites lstInters = new CListeEntites(CSc2iWin32DataClient.ContexteCourant);
                    if (lstInters.ReadIfExists((int)valeur))
                    {
                        if (lstInters.TypeElements == typeof(CIntervention))
                        {
                            m_panelTop.SetListeFiltreInters(lstInters);
                        }
                    }
                }
            }
            if (dicParametres.TryGetValue(c_parametreOnlyNotPlanned, out valeur))
            {
                if (valeur is bool)
                {
                    m_panelTop.OnlyNotPlanned = (bool)valeur;
                }
            }
            if (dicParametres.TryGetValue(c_parmetreOnlyNotAffected, out valeur))
            {
                if (valeur is bool)
                {
                    m_panelTop.OnlyNotAssigned = (bool)valeur;
                }
            }

            DateTime?dateDebut = null;
            DateTime?dateFin   = null;

            if (dicParametres.TryGetValue(c_parametreStartDate, out valeur))
            {
                if (valeur is DateTime)
                {
                    dateDebut = (DateTime)valeur;
                }
            }
            if (dicParametres.TryGetValue(c_parametreEndDate, out valeur))
            {
                if (valeur is DateTime)
                {
                    dateFin = (DateTime)valeur;
                }
            }
            if (dateDebut != null)
            {
                if (dateFin == null)
                {
                    dateFin = dateDebut.Value.AddDays(7);
                }
            }
            if (dateFin != null)
            {
                if (dateDebut == null)
                {
                    dateDebut = dateFin.Value.AddDays(-7);
                }
            }
            if (dateDebut != null && dateFin != null)
            {
                if (dateFin.Value < dateDebut.Value)
                {
                    DateTime tmp = dateDebut.Value;
                    dateDebut = dateFin;
                    dateFin   = tmp;
                }
                m_panelTop.SetDates(dateDebut.Value, dateFin.Value);
            }
            if (lstResourcesAAfficher.Count > 0)
            {
                m_panelTop.ShowRessources(lstResourcesAAfficher.ToArray());
            }
            return(result);
        }
예제 #10
0
        //------------------------------------------------------------------------------------
        public CResultAErreur TraiteDataRowFromCsv(string strCsvDataRow)
        {
            CResultAErreur result = CResultAErreur.True;

            // Traite la data row de données CSV
            string[] listeDatas = strCsvDataRow.Split(';');

            string strHostId = listeDatas[0];

            if (strHostId == "")
            {
                string strErreur = "No host Id for CSV data row : " + strCsvDataRow;
                C2iEventLog.WriteErreur(strErreur);
                result.EmpileErreur(strErreur);
                return(result);
            }
            HostId = strHostId;

            try{
                DateTime dt = ParseDateFromString(listeDatas[1]);
                if (dt != null)
                {
                    //Vérifie l'existence de cet élément
                    CListeObjetDonneeGenerique <CCamusatQowisioData> lstToCount = new CListeObjetDonneeGenerique <CCamusatQowisioData>(ContexteDonnee);
                    lstToCount.Filtre = new CFiltreData(
                        c_champQwHost_Id + "=@1 and " +
                        c_champQwDateTime + "=@2",
                        strHostId,
                        dt);
                    if (lstToCount.Count > 0)
                    {
                        if (IsNew())
                        {
                            CancelCreate();
                        }
                        PointeSurLigne(lstToCount[0].Id);
                    }
                }
            }
            catch (Exception e)
            {
            }


            int?nIdSite = TrouveAssociationIdHost_IdSite(strHostId, ContexteDonnee);

            if (nIdSite == null)
            {
                string strErreur = "Error in TraiteDataRowFromCsv: No associatied Site found for Host Id : " + strHostId;
                C2iEventLog.WriteErreur(strErreur);
                result.EmpileErreur(strErreur);
                return(result);
            }

            int nIdTypSite = -1;

            lock (typeof(CLockerCacheDatasQowisio))
            {
                if (!s_dicCacheSiteId_TypeSiteId.TryGetValue(nIdSite.Value, out nIdTypSite))
                {
                    CSite site = new CSite(ContexteDonnee);
                    if (site.ReadIfExists(nIdSite))
                    {
                        nIdTypSite = site.TypeSite.Id;
                        s_dicCacheSiteId_TypeSiteId[nIdSite.Value] = nIdTypSite;
                    }
                }
            }
            if (nIdTypSite == c_nIdTypeSiteTelecom)
            {
                SiteId = nIdSite;
            }
            else if (nIdTypSite == c_nIdTypeSitePickup)
            {
                PickupId = nIdSite;
            }
            else
            {
                string strErreur = "Error in Site Type for site Id = " + nIdSite.Value;
                C2iEventLog.WriteErreur(strErreur);
                result.EmpileErreur(strErreur);
                return(result);
            }

            int nNbColonnes = listeDatas.Length;

            for (int i = 1; i < nNbColonnes; i++)
            {
                string strDataSource = listeDatas[i];

                KeyValuePair <string, Type> defChampData;
                if (s_dicMappageColonneCsv_ChampData.TryGetValue(i, out defChampData))
                {
                    string strNomChamp = defChampData.Key;
                    Type   typeDonnee  = defChampData.Value;

                    if (typeDonnee == typeof(DateTime))
                    {
                        try
                        {
                            DateTime date = ParseDateFromString(strDataSource);
                            Row[strNomChamp] = date;
                            continue;
                        }
                        catch { }
                    }
                    if (typeDonnee == typeof(int?))
                    {
                        if (strDataSource.Trim() == "")
                        {
                            Row[strNomChamp] = DBNull.Value;
                        }
                        else
                        {
                            try
                            {
                                int nVal = Int32.Parse(strDataSource);
                                Row[strNomChamp] = nVal;
                            }
                            catch
                            {
                                Row[strNomChamp] = DBNull.Value;
                            }
                        }
                    }

                    if (typeDonnee == typeof(double))
                    {
                        try
                        {
                            double valeur = CUtilDouble.DoubleFromString(strDataSource);
                            Row[strNomChamp] = valeur;
                            continue;
                        }
                        catch { }
                    }
                    if (typeDonnee == typeof(string))
                    {
                        Row[strNomChamp] = strDataSource;
                        continue;
                    }
                }
                else
                {
                    return(result);
                }
            }

            result += TraiteAssociationsFuelProbeTank();

            return(result);
        }