예제 #1
0
        //--------------------------------------------------------------
        public override sc2i.common.CResultAErreur MyInitChamps()
        {
            if (ObjetEdite is CTypeLienReseau)
            {
                //m_spvTypeLiaison = CSpvTypliai.GetSpvTypliaiFromTypeLienReseau(ObjetEdite as CTypeLienReseau) as CSpvTypliai;
                m_spvTypeLiaison        = CSpvTypliai.GetObjetSpvFromObjetTimos(ObjetEdite as CTypeLienReseau) as CSpvTypliai;
                m_chkSuperviser.Checked = m_spvTypeLiaison != null;
            }
            CResultAErreur result = base.MyInitChamps();

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

            return(result);
        }//MyInitChamps()
예제 #2
0
        }//MyInitChamps()

        //--------------------------------------------------------------
        public override sc2i.common.CResultAErreur MyMajChamps()
        {
            CResultAErreur result = base.MyMajChamps();

            if (!result)
            {
                return(result);
            }
            if (m_chkSuperviser.Checked)
            {
                if (m_spvTypeLiaison == null)
                {
                    result = CSpvTypliai.CanSupervise(TypeLienReseau);
                    if (!result)
                    {
                        m_chkSuperviser.Checked = false;
                        return(result);
                    }
                    //m_spvTypeLiaison = CSpvTypliai.GetSpvTypliaiFromTypeLienReseauAvecCreation(TypeLienReseau);
                    m_spvTypeLiaison = CSpvTypliai.GetObjetSpvFromObjetTimosAvecCreation(TypeLienReseau);
                }
            }
            else
            {
                if (m_spvTypeLiaison != null)
                {
                    result = CResultAErreur.True;
                    using (CWaitCursor waiter = new CWaitCursor())
                    {
                        result = m_spvTypeLiaison.Delete(true);
                    }
                    if (!result)
                    {
                        m_chkSuperviser.Checked = true;
                        return(result);
                    }
                    else
                    {
                        m_spvTypeLiaison = null;
                    }
                }
            }
            return(result);
        }
예제 #3
0
        ////////////////////////////////////////////////////////////////////
        public static void PropagerCLienReseau(CContexteDonnee contexte, Hashtable tableData, ref CResultAErreur result)
        {
            ///Pour éviter de traiter plusieurs fois une liaisons lors d'une sauvegarde
            Dictionary <DataRow, bool> rowsDejaTraitees = (Dictionary <DataRow, bool>)tableData[typeof(CSpvLiaiServeur)];

            if (rowsDejaTraitees == null)
            {
                rowsDejaTraitees = new Dictionary <DataRow, bool>();
                tableData[typeof(CSpvLiaiServeur)] = rowsDejaTraitees;
            }

            DataTable dt = contexte.Tables[CLienReseau.c_nomTable];

            if (dt != null)
            {
                ArrayList rows = new ArrayList(dt.Rows);

                foreach (DataRow row in rows)
                {
                    if (row.RowState != DataRowState.Unchanged)
                    {
                        if (!rowsDejaTraitees.ContainsKey(row))
                        {
                            rowsDejaTraitees[row] = true;
                            switch (row.RowState)
                            {
                            case DataRowState.Added:
                            case DataRowState.Modified:
                                CLienReseau lienTimos = new CLienReseau(row);
                                //force la création du schéma pour qu'il se synchronise
                                lienTimos.GetSchemaReseauADessiner(true);
                                CSpvLiai lienSpv = CSpvLiai.GetSpvLiaiFromLienReseau(lienTimos) as CSpvLiai;

                                result = CSpvLiai.CanSupervise(lienTimos);
                                if (lienSpv != null)
                                {
                                    if (row.HasVersion(DataRowVersion.Original))
                                    {
                                        if (!row[CTypeLienReseau.c_champId].Equals(row[CTypeLienReseau.c_champId, DataRowVersion.Original]))
                                        {
                                            //CSpvTypliai typeLiai = CSpvTypliai.GetSpvTypliaiFromTypeLienReseau(lienTimos.TypeLienReseau) as CSpvTypliai;
                                            CSpvTypliai typeLiai = CSpvTypliai.GetObjetSpvFromObjetTimos(lienTimos.TypeLienReseau) as CSpvTypliai;
                                            if (typeLiai == null)
                                            {
                                                result = lienSpv.Delete(true);
                                                if (!result)
                                                {
                                                    result.EmpileErreur("Can not cancel supervision of link @1|20005", lienTimos.Libelle);
                                                    return;
                                                }
                                            }
                                            else
                                            {
                                                lienSpv.NomTypeLiaison = typeLiai.Libelle;
                                            }
                                        }
                                    }
                                    if (!result)
                                    {
                                        result.EmpileErreur(I.T("Invalide properties for supervised link @1|20004", lienTimos.Libelle));
                                        return;
                                    }
                                    if (lienSpv != null && lienSpv.IsValide())
                                    {
                                        //   lienSpv.CopyFromLienReseau(lienTimos);
                                        lienSpv.CopyFromObjetTimos(lienTimos);
                                    }
                                }
                                else
                                {
                                    if (result)
                                    {
                                        //Création de la liaison SPV
                                        CSpvLiai liai = GetSpvLiai(row);
                                    }
                                    else
                                    {
                                        //CSpvTypliai typeLiai = CSpvTypliai.GetSpvTypliaiFromTypeLienReseau(lienTimos.TypeLienReseau) as CSpvTypliai;

                                        /*CSpvTypliai typeLiai = CSpvTypliai.GetObjetSpvFromObjetTimos(lienTimos.TypeLienReseau) as CSpvTypliai;
                                         * if (typeLiai == null)*/
                                        result = CResultAErreur.True;
                                    }
                                }
                                break;

                            default:
                                break;
                            }
                        }
                    }
                }
            }
        }