/// <summary> /// 按指定的条件查询数据 /// </summary> /// <returns></returns> public async Task <PlanFileDtoPages> GetEntitiesAsync(PlanFileDtoSearch SearchCondition) { PlanFileDtoPages SearchResult = new PlanFileDtoPages(); IQueryable <PlanFileEntity> Items = _GhDbContext.dsPlanFiles.AsNoTracking() as IQueryable <PlanFileEntity>; //需要连同该文件的Plan信息一同读取,在操作文件时需使用之。 if (SearchCondition != null && !string.IsNullOrWhiteSpace(SearchCondition.UserId)) { //判断请求用户是否有权限(必须对该文件所属计划有读取权限) Items = Items.Where(e => e.CanReadUserIds == null || e.UserId.Equals(SearchCondition.UserId, System.StringComparison.Ordinal) || e.CanReadUserIds.Contains(SearchCondition.UserId, System.StringComparison.Ordinal)); if (!string.IsNullOrWhiteSpace(SearchCondition.Id)) { Items = Items.Where(e => e.Id.Equals(SearchCondition.Id, System.StringComparison.Ordinal)); } if (!string.IsNullOrWhiteSpace(SearchCondition.PlanId)) { Items = Items.Where(e => e.PlanId.Equals(SearchCondition.PlanId, System.StringComparison.Ordinal)); } if (!string.IsNullOrWhiteSpace(SearchCondition.Name)) { Items = Items.Where(e => e.Name.Equals(SearchCondition.Name, System.StringComparison.Ordinal)); } if (!string.IsNullOrWhiteSpace(SearchCondition.FileNumber)) { Items = Items.Where(e => e.FileNumber.Equals(SearchCondition.FileNumber, System.StringComparison.Ordinal)); } if (!string.IsNullOrWhiteSpace(SearchCondition.ContentType)) { Items = Items.Where(e => e.ContentType.Equals(SearchCondition.ContentType, System.StringComparison.Ordinal)); } if (!string.IsNullOrWhiteSpace(SearchCondition.DispatchUnit)) { Items = Items.Where(e => e.DispatchUnit.Contains(SearchCondition.DispatchUnit, System.StringComparison.Ordinal)); } if (!string.IsNullOrWhiteSpace(SearchCondition.SearchNameOrDesc)) { Items = Items.Where(e => e.Name.Contains(SearchCondition.SearchNameOrDesc, System.StringComparison.Ordinal) || e.DispatchUnit.Contains(SearchCondition.SearchNameOrDesc, System.StringComparison.Ordinal) || e.ContentType.Contains(SearchCondition.SearchNameOrDesc, System.StringComparison.Ordinal) || e.FileNumber.Contains(SearchCondition.SearchNameOrDesc, System.StringComparison.Ordinal) || e.Describe.Contains(SearchCondition.SearchNameOrDesc, System.StringComparison.Ordinal)); } SearchResult.SearchCondition.RecordCount = await Items.CountAsync().ConfigureAwait(false); List <PlanFileEntity> RecordEntities = await Items.OrderByDescending(x => x.UpDateTime).Skip((SearchCondition.PageIndex - 1) * SearchCondition.PageSize).Take(SearchCondition.PageSize).ToListAsync().ConfigureAwait(false); SearchResult.RecordList = _Mapper.Map <List <PlanFileDto> >(RecordEntities); } return(SearchResult); }
public async Task <PlanFileDtoPages> GetFilesAsync([FromQuery] PlanFileDtoSearch mSearchFile) { return(await _FileRepository.GetEntitiesAsync(mSearchFile).ConfigureAwait(false)); }