示例#1
0
        private async Task <GridFSFileInfo> GetFileInfoAsync(string fileName)
        {
            var filter = Builders <GridFSFileInfo> .Filter.Eq(x => x.Filename, fileName);

            var fileInfo = await GridFsBucket.Find(filter).FirstOrDefaultAsync();

            return(fileInfo);
        }
示例#2
0
        public IEnumerable <MongoItemVM> GetAllFiles(int skip, int take)
        {
            var options = new GridFSFindOptions
            {
                Limit = take,
                Skip  = skip,
            };

            var stream = GridFsBucket
                         .Find(new BsonDocumentFilterDefinition <GridFSFileInfo <ObjectId> >(new BsonDocument()), options)
                         .ToList()
                         .Select(s => new MongoItemVM
            {
                Id             = s.Id,
                Filename       = s.Filename,
                MetaData       = s.Metadata,
                Length         = s.Length + "",
                UploadDateTime = s.UploadDateTime,
            }).ToList();

            return(stream);
        }
示例#3
0
        public IEnumerable <MongoItemVM> GetAllFilesByContentType(string contentType, int skip, int take)
        {
            var filter = Builders <GridFSFileInfo> .Filter
                         .Eq(info => info.Metadata, new BsonDocument(new BsonElement("contentType", contentType)));

            var options = new GridFSFindOptions
            {
                Limit = take,
                Skip  = skip,
            };

            var stream = GridFsBucket.Find(filter, options)
                         .ToList()
                         .Select(s => new MongoItemVM
            {
                Id             = s.Id,
                Filename       = s.Filename,
                MetaData       = s.Metadata,
                Length         = s.Length + "",
                UploadDateTime = s.UploadDateTime,
            }).ToList();

            return(stream);
        }
示例#4
0
        public Task <bool> AnyAsync(string fileName)
        {
            var filter = Builders <GridFSFileInfo> .Filter.Where(x => x.Filename == fileName);

            return(GridFsBucket.Find(filter).AnyAsync());
        }
示例#5
0
        public async Task <bool> AnyAsync(ObjectId id)
        {
            var filter = Builders <GridFSFileInfo> .Filter.Eq("_id", id);

            return(await GridFsBucket.Find(filter).AnyAsync());
        }