Ejemplo n.º 1
0
        public async Task <List <ArchivesInfo> > QueryExportArchives(ArchivesSearchRequest request)
        {
            var query = _db.ArchivesInfo.AsNoTracking();

            if (!string.IsNullOrEmpty(request.Keyword))
            {
                query = query.Where(c => c.Title.Contains(request.Keyword.Trim()) || c.ProjectName.Contains(request.Keyword.Trim()));
            }
            if (!string.IsNullOrEmpty(request.Label))
            {
                var projectNames = request.Label.Split(',', StringSplitOptions.RemoveEmptyEntries);
                query = query.Where(c => projectNames.Contains(c.ProjectName));
            }

            return(await query.OrderBy(c => c.ArchivesNumber).ToListAsync());


            //return await _db.ArchivesInfo.ToListAsync();
        }
Ejemplo n.º 2
0
        public async Task <CommonSearchResponse <List <ArchivesSearchResult> > > SearchArchives(ArchivesSearchRequest request)
        {
            var response = new CommonSearchResponse <List <ArchivesSearchResult> >();

            try
            {
                var query = _db.ArchivesInfo.AsNoTracking().Where(c => !c.Deleted);
                if (!string.IsNullOrEmpty(request.Keyword))
                {
                    query = query.Where(c => c.Title.Contains(request.Keyword.Trim()) || c.ProjectName.Contains(request.Keyword.Trim()));
                }
                if (!string.IsNullOrEmpty(request.Label))
                {
                    var projectNames = request.Label.Split(',', StringSplitOptions.RemoveEmptyEntries);
                    query = query.Where(c => projectNames.Contains(c.ProjectName));
                }
                if (request.ShowBorrowed.HasValue)
                {
                    if (!request.ShowBorrowed.Value)
                    {
                        query = query.Where(c => c.Status != ArchivesStatus.Borrowed);
                    }
                }
                var list = await query.OrderBy(c => c.ArchivesNumber)
                           .Skip(request.PageNumber * request.PageSize)
                           .Take(request.PageSize)
                           .Select(c => new ArchivesSearchResult
                {
                    Id             = c.Id,
                    ArchivesNumber = c.ArchivesNumber,
                    CategoryId     = c.CategoryId,
                    FileNumber     = c.FileNumber,
                    ProjectName    = c.ProjectName,
                    Title          = c.Title,
                    OrderNumber    = c.OrderNumber,
                    Status         = c.Status,
                }).ToListAsync();

                var total = await query.CountAsync();

                response.Data       = list;
                response.TotalPage  = total.GetPages(request.PageSize);
                response.TotalCount = total;
                response.Success    = true;
            }
            catch (Exception ex)
            {
                response.Message = "获取案档列表发生异常";
                ApplicationLog.Error("SearchArchives", ex);
            }

            return(response);
        }
Ejemplo n.º 3
0
        public async Task <CommonSearchResponse <List <ArchivesSearchResult> > > SearchArchives([FromQuery] ArchivesSearchRequest request)
        {
            var response = await _archivesService.SearchArchives(request);

            return(response);
        }