Esempio n. 1
0
        //-----------------------------------------
        /// <summary>
        /// Déclenche l'évenement AFTER_SYNC_ON_MAIN sur les objets qui implémentent cet
        /// évenement et qui ont été modifiés ou ajoutés dans le contexte de données
        /// </summary>
        /// <param name="contexteDonnee"></param>
        /// <returns></returns>
        public CResultAErreur DeclencheEvenementAfterSyncOnMain(CContexteDonnee contexteDonnee)
        {
            CResultAErreur result = CResultAErreur.True;

            foreach (DataTable table in new ArrayList(contexteDonnee.Tables))
            {
                Type     tp      = CContexteDonnee.GetTypeForTable(table.TableName);
                object[] evtsAtt = tp.GetCustomAttributes(typeof(EvenementAttribute), true);
                if (evtsAtt.Length > 0)
                {
                    bool bHasEvt = false;
                    foreach (EvenementAttribute att in evtsAtt)
                    {
                        if (att.Identifiant == CUtilSynchronisation.c_strEvenementAfterSyncSurMain)
                        {
                            bHasEvt = true;
                            break;
                        }
                    }
                    if (bHasEvt)
                    {
                        foreach (DataRow row in table.Rows)
                        {
                            if (row.RowState == DataRowState.Added || row.RowState == DataRowState.Modified)
                            {
                                CObjetDonneeAIdNumerique obj = Activator.CreateInstance(tp, row) as CObjetDonneeAIdNumerique;
                                if (obj != null)
                                {
                                    obj.EnregistreEvenement(CUtilSynchronisation.c_strEvenementAfterSyncSurMain, false);
                                }
                            }
                        }
                    }
                }
            }
            return(result);
        }