//////////////////////////////////////////////////////////////////////// public CFiltresDynamiquesForTables CalculeFiltresForTables() { CFiltresDynamiquesForTables filtres = new CFiltresDynamiquesForTables(); //Crée un filtre pour chaque les tables fullsnchro foreach (string strNomTable in CContexteDonnee.MappeurTableToClass.GetListeTables()) { Type tp = CContexteDonnee.GetTypeForTable(strNomTable); if (tp != null && tp.GetCustomAttributes(typeof(FullTableSyncAttribute), true).Length > 0) { CFiltreSynchronisation filtreTableFull = new CFiltreSynchronisation(strNomTable); filtreTableFull.TouteLaTable = true; filtreTableFull.IsAutoAdd = true; filtreTableFull.CreateFiltreForAllParents(); filtreTableFull.CreateFiltreForAllCompositions(); filtreTableFull.FiltreDynamique = CFiltreSynchronisation.GetFiltreDynamiqueSynchro(tp); filtres.AddFiltreSynchronisation(filtreTableFull); } } foreach (CFiltreSynchronisation filtre in m_listefiltresSynchronisation) { filtre.CalculeFiltresForTables(); filtres.AddFiltreSynchronisation(filtre); } return(filtres); }
//////////////////////////////////////////////////////////////////////// public CFiltreDynamique GetFiltreDynamiqueForTable(string strNomTable, ref bool bShouldSynchroniseTable) { ArrayList lst = (ArrayList)m_tableTableToFiltreSynchronisation[strNomTable]; Type tp = CContexteDonnee.GetTypeForTable(strNomTable); if (tp != null && tp.GetCustomAttributes(typeof(FullTableSyncAttribute), true).Length > 0) { bShouldSynchroniseTable = true; return(null); } if (lst == null || lst.Count == 0) { bShouldSynchroniseTable = false; return(null); } bShouldSynchroniseTable = true; CFiltreDynamique filtreDynamique = CFiltreSynchronisation.GetFiltreDynamiqueSynchro(CContexteDonnee.GetTypeForTable(strNomTable)); CComposantFiltreDynamiqueOu composantOu = new CComposantFiltreDynamiqueOu(); foreach (CFiltreSynchronisation filtreSynchro in lst) { if (filtreSynchro.TouteLaTable || filtreSynchro.FiltreDynamique == null) { return(null); } CFiltreDynamique filtreLocal = filtreSynchro.GetFiltreToElementPrincipal(); if (filtreLocal != null && filtreLocal.ComposantPrincipal != null) { composantOu.AddComposantFils(filtreLocal.ComposantPrincipal); } if (filtreLocal == null) { return(null); } } if (composantOu.GetNbComposantsFils() == 0) { return(null); } if (composantOu.GetNbComposantsFils() == 1) { filtreDynamique.ComposantPrincipal = composantOu.ComposantsFils[0]; } else { filtreDynamique.ComposantPrincipal = composantOu; } return(filtreDynamique); }