////////////////////////////////////////////////// public override CFiltreMemoryDb GetClone() { CFiltreMemoryDbAvance filtre = new CFiltreMemoryDbAvance(m_typePrincipal); CopyTo(filtre); return(filtre); }
/////////////////////////////////////////////////// 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); }
////////////////////////////////////////////////// private void CopyTo(CFiltreMemoryDbAvance filtre) { base.CopyTo(filtre); filtre.m_typePrincipal = m_typePrincipal; }