Esempio n. 1
0
        /// <summary>
        ///  Loads the objects from DB
        /// </summary>
        /// <param name="type">requested type</param>
        /// <param name="clause">where clause to restrict the search</param>
        /// <returns>a list of <see cref="PersistentObject"/>s</returns>
        public List <PersistentObject> GetObjects(Type type, WhereClause clause)
        {
            ClassWrapper            classWrapper    = WrappingHandler.GetClassWrapper(type);
            List <PersistentObject> objectsToReturn = new List <PersistentObject>();

            DataTable table = connection.GetTable(classWrapper, clause);

            foreach (DataRow row in table.Rows)
            {
                objectsToReturn.Add(LoadObject(classWrapper, row));
            }

            ObjectCache.ApplyLoadedObjectsToCache();

            return(objectsToReturn);
        }
Esempio n. 2
0
        /// <summary>
        /// Loads all objects of a type
        /// </summary>
        /// <typeparam name="T">Type to load</typeparam>
        /// <param name="loadFromDB">determines if object can be loaded from database</param>
        /// <returns>a list of <see cref="PersistentObject"/>s</returns>
        public List <T> GetObjects <T>(bool loadFromDB = false) where T : PersistentObject
        {
            if (loadFromDB)
            {
                RefreshType(WrappingHandler.GetClassWrapper(typeof(T)));
                ObjectCache.ApplyLoadedObjectsToCache();
            }

            List <T> castedList = new List <T>();

            foreach (PersistentObject obj in ObjectCache.Get(typeof(T)))
            {
                castedList.Add((T)obj);
            }

            return(castedList.Count > 0 ? castedList : null);
        }
Esempio n. 3
0
        /// <summary>
        /// Gets one object of type <paramref name="type"/>
        /// </summary>
        /// <param name="type">type of object to get</param>
        /// <param name="id">ID of object</param>
        /// <param name="loadFromDB">determines if object can be loaded from database</param>
        /// <returns>instance of found object of type <typeparamref name="T"/></returns>
        public PersistentObject GetObject(Type type, Guid id, bool loadFromDB = false)
        {
            object objToReturn = default;

            // check cache
            foreach (PersistentObject obj in ObjectCache.Get(type))
            {
                if (obj.ID.Equals(id))
                {
                    objToReturn = obj;
                    break;
                }
            }

            if (objToReturn == null && loadFromDB)
            {
                ClassWrapper clsWrapper = WrappingHandler.GetClassWrapper(type);
                DataRow      row        = connection.GetObject(clsWrapper, id);

                objToReturn = LoadObject(clsWrapper, row);
            }

            return(objToReturn as PersistentObject);
        }
Esempio n. 4
0
 public SQLiteStatementBuilder(TypeParser parser, WrappingHandler handler) : base(parser, handler)
 {
 }
Esempio n. 5
0
 public StatementBuilder(TypeParser parser, WrappingHandler handler)
 {
     fieldTypeParser = parser;
     wrappingHandler = handler;
 }