コード例 #1
0
        /// <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);
        }
コード例 #2
0
 public async Task <PlanFileDtoPages> GetFilesAsync([FromQuery] PlanFileDtoSearch mSearchFile)
 {
     return(await _FileRepository.GetEntitiesAsync(mSearchFile).ConfigureAwait(false));
 }