Beispiel #1
0
        //////////////////////////////////////////////////
        public virtual CFiltreMemoryDb GetClone()
        {
            CFiltreMemoryDb filtre = new CFiltreMemoryDb();

            CopyTo(filtre);
            return(filtre);
        }
Beispiel #2
0
 //////////////////////////////////////////////////
 protected void CopyTo(CFiltreMemoryDb filtre)
 {
     filtre.Filtre = m_strFiltre;
     foreach (object param in Parametres)
     {
         filtre.Parametres.Add(param);
     }
 }
Beispiel #3
0
        //-----------------------------------------------------------
        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);
        }
Beispiel #4
0
        ///////////////////////////////////////////////////
        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);
        }
Beispiel #5
0
 ///////////////////////////////////////////////////
 public static CFiltreMemoryDb GetOrFiltre(CFiltreMemoryDb filtre1, CFiltreMemoryDb filtre2)
 {
     return(CombineFiltres(filtre1, filtre2, "OR"));
 }
Beispiel #6
0
 ///////////////////////////////////////////////////
 public static CFiltreMemoryDb GetAndFiltre(CFiltreMemoryDb filtre1, CFiltreMemoryDb filtre2)
 {
     return(CombineFiltres(filtre1, filtre2, "AND"));
 }
Beispiel #7
0
 //----------------------------------------------------------------
 public CListeEntitesDeMemoryDbBase(CMemoryDb db, Type typeElements, CFiltreMemoryDb filtrePrincipal)
     : this(db, typeElements)
 {
     m_filtrePrincipal = filtrePrincipal;
 }
Beispiel #8
0
 //----------------------------------------------------------------
 public CListeEntitesDeMemoryDb(CMemoryDb db, CFiltreMemoryDb filtrePrincipal)
     : base(db, typeof(T), filtrePrincipal)
 {
 }