////////////////////////////////////////////////// public virtual CFiltreMemoryDb GetClone() { CFiltreMemoryDb filtre = new CFiltreMemoryDb(); CopyTo(filtre); return(filtre); }
////////////////////////////////////////////////// protected void CopyTo(CFiltreMemoryDb filtre) { filtre.Filtre = m_strFiltre; foreach (object param in Parametres) { filtre.Parametres.Add(param); } }
//----------------------------------------------------------- public bool ReadIfExist(CFiltreMemoryDb filtre) { DataTable table = m_database.GetTable(GetType()); DataRow[] rows = table.Select(filtre.GetFiltreDataTable()); if (rows.Length > 0) { m_row = new CMemoryDataRow(rows[0]); return(true); } return(false); }
/////////////////////////////////////////////////// protected static CFiltreMemoryDb CombineFiltres(CFiltreMemoryDb filtre1, CFiltreMemoryDb filtre2, string strOperateur) { if ((filtre1 == null || !filtre1.HasFiltre) && (filtre2 == null || !filtre2.HasFiltre)) { return(null); } if (filtre1 == null || !filtre1.HasFiltre) { return(filtre2.GetClone()); } if (filtre2 == null || !filtre2.HasFiltre) { return(filtre1.GetClone()); } if (filtre1 is CFiltreMemoryDBImpossible || filtre2 is CFiltreMemoryDBImpossible) { return(new CFiltreMemoryDBImpossible()); } CFiltreMemoryDb filtreResult = null; if (filtre1 is CFiltreMemoryDbAvance) { filtreResult = new CFiltreMemoryDbAvance(((CFiltreMemoryDbAvance)filtre1).TypePrincipal); } else if (filtre2 is CFiltreMemoryDbAvance) { filtreResult = new CFiltreMemoryDbAvance(((CFiltreMemoryDbAvance)filtre2).TypePrincipal); } else { filtreResult = new CFiltreMemoryDb(); } filtreResult.Filtre = "(" + filtre1.Filtre + ")"; CFiltreMemoryDb copie = filtre2.GetClone(); copie.RenumerotteParameters(filtre1.Parametres.Count + 1); filtreResult.Filtre += " " + strOperateur + " (" + copie.Filtre + ")"; foreach (object parametre in filtre1.Parametres) { filtreResult.Parametres.Add(parametre); } foreach (object parametre in filtre2.Parametres) { filtreResult.Parametres.Add(parametre); } return(filtreResult); }
/////////////////////////////////////////////////// public static CFiltreMemoryDb GetOrFiltre(CFiltreMemoryDb filtre1, CFiltreMemoryDb filtre2) { return(CombineFiltres(filtre1, filtre2, "OR")); }
/////////////////////////////////////////////////// public static CFiltreMemoryDb GetAndFiltre(CFiltreMemoryDb filtre1, CFiltreMemoryDb filtre2) { return(CombineFiltres(filtre1, filtre2, "AND")); }
//---------------------------------------------------------------- public CListeEntitesDeMemoryDbBase(CMemoryDb db, Type typeElements, CFiltreMemoryDb filtrePrincipal) : this(db, typeElements) { m_filtrePrincipal = filtrePrincipal; }
//---------------------------------------------------------------- public CListeEntitesDeMemoryDb(CMemoryDb db, CFiltreMemoryDb filtrePrincipal) : base(db, typeof(T), filtrePrincipal) { }