コード例 #1
0
        public async Task <IActionResult> FilterPublications(PublicationSearchModel filters, [FromQuery] PagedParams param)
        {
            var queryable    = SearchPublication(filters);
            var publications = await PagedList <Publication> .CreateAsync(queryable.OrderByDescending(
                                                                              c => c.Id), param.PageNumber, param.PageSize);

            Response.AddPagination(publications.CurrentPage, publications.PageSize,
                                   publications.TotalCount, publications.TotalPages);

            return(Ok(publications.ToList()));
        }
コード例 #2
0
        private IQueryable <Publication> SearchPublication(PublicationSearchModel filters = null)
        {
            var query = _repoWrapper.Publication.Queryable();

            if (filters.UserId != null)
            {
                query = _repoWrapper.Publication.FindQueryable(v => v.UserId == filters.UserId);
            }

            if (filters.InvoiceNumber != null)
            {
                query = query.Where(v => v.InvoiceNumber == filters.InvoiceNumber);
            }

            if (filters.MinMileage != null)
            {
                query = query.Where(v => v.Mileage >= filters.MinMileage);
            }

            if (filters.MaxMileage != null)
            {
                query = query.Where(v => v.Mileage >= filters.MaxMileage);
            }

            if (filters.SerialNumber != null)
            {
                query = query.Where(v => v.SerialNumber.StartsWith(filters.SerialNumber));
            }

            if (filters.InsideColor != null)
            {
                query = query.Where(v => v.InsideColor.StartsWith(filters.InsideColor));
            }

            if (filters.OutsideColor != null)
            {
                query = query.Where(v => v.OutsideColor.StartsWith(filters.OutsideColor));
            }

            if (filters.MinPrice != null)
            {
                query = query.Where(v => v.Price >= filters.MinPrice);
            }

            if (filters.MaxPrice != null)
            {
                query = query.Where(v => v.Price <= filters.MaxPrice);
            }

            if (filters.BrandId != null)
            {
                query = query.Where(v => v.BrandId == filters.BrandId);
            }

            if (filters.ModelId != null)
            {
                query = query.Where(v => v.ModelId == filters.ModelId);
            }

            if (filters.FuelId != null)
            {
                query = query.Where(v => v.FuelId == filters.FuelId);
            }

            if (filters.LocationId != null)
            {
                query = query.Where(v => v.LocationId == filters.LocationId);
            }

            if (filters.PackId != null)
            {
                query = query.Where(v => v.PackId == filters.PackId);
            }

            if (filters.TransmissionId != null)
            {
                query = query.Where(v => v.TransmissionId == filters.TransmissionId);
            }

            if (filters.VersionId != null)
            {
                query = query.Where(v => v.VersionId == filters.VersionId);
            }

            if (filters.YearId != null)
            {
                query = query.Where(v => v.YearId == filters.YearId);
            }

            if (filters.DoorsNumberId != null)
            {
                query = query.Where(v => v.DoorsNumberId == filters.DoorsNumberId);
            }

            if (filters.UserId != null)
            {
                query = query.Where(v => v.UserId == filters.UserId);
            }

            return(query);
        }