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)); }
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)); }
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); }
public async Task <IActionResult> GetContent([FromQuery] FileQueryModel query) { var result = await _fileManageService.GetContentsAsync(query); return(Ok(result)); }
public Task <IResultModel> Query([FromQuery] FileQueryModel model) { return(_service.Query(model)); }