コード例 #1
0
        private IQueryable <Organization> BuildQuery(SearchOrganizationRequest request)
        {
            var queryable = this.GetQueryable().Include(x => x.Address).AsNoTracking();

            if (request.ID != null)
            {
                queryable = queryable.Where(x => x.ID == request.ID);
            }
            if (!string.IsNullOrEmpty(request.Name))
            {
                queryable = queryable.Where(x => x.Name.Contains(request.Name));
            }
            if (request.IsActive != null)
            {
                queryable = queryable.Where(x => x.IsActive == request.IsActive);
            }
            if (request.IsDeleted != null)
            {
                queryable = queryable.Where(x => x.IsDeleted == request.IsDeleted);
            }
            if (request.CountryId != null)
            {
                queryable = queryable.Where(x => x.Address.CountryId == request.CountryId);
            }
            if (request.ProvinceId != null)
            {
                queryable = queryable.Where(x => x.Address.ProvinceId == request.ProvinceId);
            }
            return(queryable);
        }
コード例 #2
0
        public SearchResult <OrganizationModel> SearchOrganization(SearchOrganizationRequest request)
        {
            var searchResult = _organizationRepository.Search(request);
            var result       = new SearchResult <OrganizationModel>();

            searchResult.Result.ForEach(x =>
            {
                var organizationModel         = x.ToModel();
                organizationModel.AddressName = x.Address?.AddressLine;
                result.Result.Add(organizationModel);
            });
            result.Total = searchResult.Total;
            return(result);
        }
コード例 #3
0
        public SearchResult <Organization> Search(SearchOrganizationRequest request)
        {
            var result    = new SearchResult <Organization>();
            var queryable = BuildQuery(request);

            if (request.PageIndex == 0)
            {
                result.Total = queryable.Count();
            }
            if (request.OrderBy == null)
            {
                queryable = queryable.OrderBy(x => x.CreatedDate);
            }
            else
            {
                queryable = queryable.OrderByProperty(request.OrderBy);
            }
            if (request.PageIndex != null && request.PageSize != null)
            {
                queryable = queryable.Skip(request.PageSize.Value * request.PageIndex.Value).Take(request.PageSize.Value);
            }
            result.Result = queryable.ToList();
            return(result);
        }
コード例 #4
0
        public ActionResult <SearchResult <OrganizationModel> > Search([FromQuery] SearchOrganizationRequest request)
        {
            var result = _organizationService.SearchOrganization(request);

            return(result);
        }