コード例 #1
0
        public virtual ResultWithEntities <T> GetMany(IEnumerable <TKey> ids)
        {
            var objectids = new List <ObjectId>();

            foreach (var id in ids)
            {
                objectids.Add(new ObjectId(id as string));
            }
            var result = new ResultWithEntities <T>();

            try
            {
                var filter = Builders <T> .Filter.In("_id", objectids);

                var entities = collection.Find(filter).ToList();
                if (entities != null)
                {
                    result.Entities = entities;
                    result.Success  = true;
                }
                return(result);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                return(result);
            }
        }
コード例 #2
0
        public virtual ResultWithEntities <T> GetAll()
        {
            var result = new ResultWithEntities <T>();

            try
            {
                var entities = collection.Find(x => x.Id != null).ToList();
                if (entities != null)
                {
                    result.Entities = entities;
                }
                result.Success = true;
                return(result);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                return(result);
            }
        }
コード例 #3
0
        public virtual ResultWithEntities <T> GetMany(Expression <Func <T, bool> > predicate)
        {
            var result = new ResultWithEntities <T>();

            try
            {
                var entities = collection.Find(predicate).ToList();
                if (entities != null)
                {
                    result.Entities = entities;
                }
                result.Success = true;
                return(result);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                return(result);
            }
        }
コード例 #4
0
        public ResultWithEntities <T> GetMany(FilterDefinition <T> filter)
        {
            var result = new ResultWithEntities <T>();

            try
            {
                var entities = collection.Find(filter).ToList();
                if (entities != null)
                {
                    result.Entities = entities;
                    result.Success  = true;
                }
                return(result);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                return(result);
            }
        }
コード例 #5
0
        public virtual ResultWithEntities <T> GetAll(int?page, int pageSize, out long pages)
        {
            var result = new ResultWithEntities <T>();

            pages = 0;
            try
            {
                var entities = collection.Find(new BsonDocument()).Skip((page - 1) * pageSize).Limit(pageSize).ToList();
                pages = collection.Find(new BsonDocument()).Count() / pageSize;
                if (entities != null)
                {
                    result.Entities = entities;
                }
                result.Success = true;
                return(result);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                return(result);
            }
        }
コード例 #6
0
        // Ids list doesn't work with predicate
        // change did=
        //public virtual ResultWithEntities<T> GetMany(string filterName, List<TKey> values)
        //{
        //    var objectIds = new List<ObjectId>();
        //    values.ForEach(id => objectIds.Add(new ObjectId(id as string)));
        //    var filter = Builders<T>.Filter.In(filterName, objectIds);
        //    return GetMany(filter);
        //}

        public virtual ResultWithEntities <T> GetMany(Expression <Func <T, bool> > predicate, int?page, int pageSize, out long pages)
        {
            var result = new ResultWithEntities <T>();

            pages = 0;
            try
            {
                var entities = collection.Find(predicate).Skip((page - 1) * pageSize).Limit(pageSize).ToList();
                pages = collection.Find(predicate).Count() / pageSize;
                if (entities != null)
                {
                    result.Entities = entities;
                }
                result.Success = true;
                return(result);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                return(result);
            }
        }
コード例 #7
0
        public ResultWithEntities <T> GetMany(FilterDefinition <T> filter, int?page, int pageSize, out long pages)
        {
            var result = new ResultWithEntities <T>();

            pages = 0;
            try
            {
                var entities = collection.Find(filter).Skip((page - 1) * pageSize).Limit(pageSize).ToList();
                pages = (int)Math.Ceiling((decimal)collection.Find(filter).Count() / pageSize);
                //pages = collection.Find(filter).Count() / pageSize;
                if (entities != null)
                {
                    result.Entities = entities;
                    result.Success  = true;
                }
                return(result);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                return(result);
            }
        }