Ejemplo n.º 1
0
        //--------------------------------------------------
        private void m_lnkRestore_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (!m_bCanRestore)
            {
                return;
            }
            DataTable table = m_grilleProprietes.DataSource as DataTable;

            if (table != null && m_objetAffiche != null && m_valeursAffichees != null)
            {
                using (CContexteDonnee contexte = new CContexteDonnee(m_objetAffiche.ContexteDonnee.IdSession, true, false))
                {
                    CObjetDonneeAIdNumerique objetAModifier = contexte.GetObjetInThisContexte(m_objetAffiche) as CObjetDonneeAIdNumerique;
                    List <DataRow>           rowsSelected   = new List <DataRow>();
                    foreach (DataRow row in table.Rows)
                    {
                        if ((bool)row[m_strColChecked])
                        {
                            rowsSelected.Add(row);
                        }
                    }
                    CResultAErreur result = CResultAErreur.True;
                    if (rowsSelected.Count > 0)
                    {
                        objetAModifier.BeginEdit();
                        foreach (DataRow row in rowsSelected)
                        {
                            IChampPourVersion champ = row[m_strColObjetHistorique] as IChampPourVersion;
                            if (champ != null)
                            {
                                IJournaliseurDonneesChamp journaliseur = CGestionnaireAChampPourVersion.GetJournaliseur(champ.TypeChampString);
                                if (journaliseur != null)
                                {
                                    result = journaliseur.AppliqueValeur(m_version.Id, champ, objetAModifier, m_valeursAffichees[champ]);
                                    if (!result)
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                        if (result)
                        {
                            result = objetAModifier.CommitEdit();
                        }
                        if (!result)
                        {
                            objetAModifier.CancelEdit();
                            CFormAlerte.Afficher(result.Erreur);
                        }
                        else
                        {
                            InitForObjet(objetAModifier, m_version);
                        }
                    }
                }
            }
        }
        //------------------------------------------------------
        public static void EditeRestricitionsSpecifiques(
            IElementARestrictionsSpecifiques element,
            bool bModeEdition)
        {
            CFormEditRestrictionsSpecifiques form  = new CFormEditRestrictionsSpecifiques();
            CObjetDonneeAIdNumerique         objet = element as CObjetDonneeAIdNumerique;

            objet.BeginEdit();
            form.m_elementARestrictions       = objet as IElementARestrictionsSpecifiques;
            form.m_extModeEdition.ModeEdition = bModeEdition;
            if (form.ShowDialog() == DialogResult.OK && bModeEdition)
            {
                CResultAErreur result = objet.CommitEdit();
                if (!result)
                {
                    CFormAlerte.Afficher(result.Erreur);
                }
            }
            else
            {
                objet.CancelEdit();
            }
            form.Dispose();
        }