Example #1
0
        //-----------------------------------------------------------
        public CListeEntitesDeMemoryDb <T> GetFils <T>(string strChampId)
            where T : CEntiteDeMemoryDb
        {
            CListeEntitesDeMemoryDb <T> liste = new CListeEntitesDeMemoryDb <T>(m_database,
                                                                                new CFiltreMemoryDb(strChampId + "=@1", Id));

            return(liste);
        }
Example #2
0
        //------------------------------------------------------------------------------
        protected CResultAErreur SerializeChilds <T>(C2iSerializer serializer, string strChampIdDansChild)
            where T : CEntiteDeMemoryDb
        {
            CResultAErreur result = CResultAErreur.True;
            CListeEntitesDeMemoryDb <T> listeChilds = GetFils <T>(strChampIdDansChild);
            int nNb = listeChilds.Count();

            if (serializer.Mode == ModeSerialisation.Ecriture && Database.IsFullReadEnCours)
            {
                nNb = 0;
            }
            serializer.TraiteInt(ref nNb);
            if (nNb > 0)
            {
                switch (serializer.Mode)
                {
                case ModeSerialisation.Ecriture:
                    foreach (T child in listeChilds)
                    {
                        T childRef = child;
                        result = serializer.TraiteObject <T>(ref childRef);
                        if (!result)
                        {
                            return(result);
                        }
                    }
                    break;

                case ModeSerialisation.Lecture:
                    for (int nChild = 0; nChild < nNb; nChild++)
                    {
                        T child = null;
                        result = serializer.TraiteObject <T>(ref child, Database);
                        if (!result)
                        {
                            return(result);
                        }
                    }
                    break;
                }
            }
            return(result);
        }