Пример #1
0
        public async Task <IResultModel> Query(FileQueryModel model)
        {
            var result = new QueryResultModel <FileEntity>
            {
                Rows  = await _repository.Query(model),
                Total = model.TotalCount
            };

            foreach (var entity in result.Rows)
            {
                entity.Url = _fileStorageProvider.GetUrl(entity.FullPath, entity.AccessMode);
            }
            return(ResultModel.Success(result));
        }
Пример #2
0
        public async Task <IEnumerable <FileResultModel> > GetContentsAsync(FileQueryModel query)
        {
            var contents = await _fileStore.GetDirectoryContentAsync(query.Directory);

            var result = from content in contents
                         orderby content.IsDirectory descending
                         select new FileResultModel
            {
                FileName    = content.Name,
                Directory   = content.DirectoryPath,
                IsDirectory = content.IsDirectory,
                CreateTime  = content.LastModifiedUtc,
                Size        = content.Length
            };

            var skip = query.Size * (query.Page - 1);

            return(result.Skip(skip).Take(query.Size));
        }
Пример #3
0
        public async Task <IList <FileEntity> > Query(FileQueryModel model)
        {
            var paging = model.Paging();
            var query  = Db.Find();

            query.WhereNotNull(model.FileName, m => m.FileName.Contains(model.FileName));
            query.WhereNotNull(model.ModuleCode, m => m.ModuleCode == model.ModuleCode);
            query.WhereNotNull(model.AccessMode, m => m.AccessMode == model.AccessMode.Value);

            if (!paging.OrderBy.Any())
            {
                query.OrderByDescending(m => m.Id);
            }

            var list = await query.LeftJoin <ModuleEntity>((x, y) => x.ModuleCode == y.Code).LeftJoin <AccountEntity>((x, y, z) => x.CreatedBy == z.Id)
                       .Select((x, y, z) => new { x, ModuleName = y.Name, Creator = z.Name })
                       .PaginationAsync(paging);

            model.TotalCount = paging.TotalCount;
            return(list);
        }
Пример #4
0
        public async Task <IActionResult> GetContent([FromQuery] FileQueryModel query)
        {
            var result = await _fileManageService.GetContentsAsync(query);

            return(Ok(result));
        }
Пример #5
0
 public Task <IResultModel> Query([FromQuery] FileQueryModel model)
 {
     return(_service.Query(model));
 }