add more filter options for GetAddressesPageQuery
All checks were successful
/ build (push) Successful in 6m39s
/ tests (push) Successful in 38s
/ build-docker (push) Successful in 5m9s

This commit is contained in:
cuqmbr 2025-05-01 21:04:02 +03:00
parent bd87ab9133
commit 09f3a46edc
Signed by: cuqmbr
GPG Key ID: 0AA446880C766199
4 changed files with 45 additions and 0 deletions

View File

@ -1,4 +1,5 @@
using cuqmbr.TravelGuide.Application.Common.Models; using cuqmbr.TravelGuide.Application.Common.Models;
using cuqmbr.TravelGuide.Domain.Enums;
using MediatR; using MediatR;
namespace cuqmbr.TravelGuide.Application.Addresses.Queries.GetAddressesPage; namespace cuqmbr.TravelGuide.Application.Addresses.Queries.GetAddressesPage;
@ -18,4 +19,14 @@ public record GetAddressesPageQuery : IRequest<PaginatedList<AddressDto>>
public Guid? RegionGuid { get; set; } public Guid? RegionGuid { get; set; }
public Guid? CityGuid { get; set; } public Guid? CityGuid { get; set; }
public double? LongitudeGreaterOrEqualThan { get; set; }
public double? LongitudeLessOrEqualThan { get; set; }
public double? LatitudeGreaterOrEqualThan { get; set; }
public double? LatitudeLessOrEqualThan { get; set; }
public VehicleType? VehicleType { get; set; }
} }

View File

@ -30,6 +30,21 @@ public class GetAddressesPageQueryHandler :
e.City.Name.ToLower().Contains(request.Search.ToLower()) || e.City.Name.ToLower().Contains(request.Search.ToLower()) ||
e.City.Region.Name.ToLower().Contains(request.Search.ToLower()) || e.City.Region.Name.ToLower().Contains(request.Search.ToLower()) ||
e.City.Region.Country.Name.ToLower().Contains(request.Search.ToLower())) && e.City.Region.Country.Name.ToLower().Contains(request.Search.ToLower())) &&
(request.LongitudeGreaterOrEqualThan != null
? e.Longitude >= request.LongitudeGreaterOrEqualThan
: true) &&
(request.LongitudeLessOrEqualThan != null
? e.Longitude <= request.LongitudeLessOrEqualThan
: true) &&
(request.LatitudeGreaterOrEqualThan != null
? e.Latitude >= request.LatitudeGreaterOrEqualThan
: true) &&
(request.LatitudeLessOrEqualThan != null
? e.Latitude <= request.LatitudeLessOrEqualThan
: true) &&
(request.VehicleType != null
? e.VehicleType == request.VehicleType
: true) &&
(request.CityGuid != null (request.CityGuid != null
? e.City.Guid == request.CityGuid ? e.City.Guid == request.CityGuid
: true) && : true) &&

View File

@ -7,4 +7,14 @@ public sealed class GetAddressesPageFilterViewModel
public Guid? RegionUuid { get; set; } public Guid? RegionUuid { get; set; }
public Guid? CityUuid { get; set; } public Guid? CityUuid { get; set; }
public double? LongitudeGreaterOrEqualThan { get; set; }
public double? LongitudeLessOrEqualThan { get; set; }
public double? LatitudeGreaterOrEqualThan { get; set; }
public double? LatitudeLessOrEqualThan { get; set; }
public string? VehicleType { get; set; }
} }

View File

@ -89,6 +89,15 @@ public class AddressesController : ControllerBase
PageSize = pageQuery.PageSize, PageSize = pageQuery.PageSize,
Search = searchQuery.Search, Search = searchQuery.Search,
Sort = sortQuery.Sort, Sort = sortQuery.Sort,
LongitudeGreaterOrEqualThan =
filterQuery.LongitudeGreaterOrEqualThan,
LongitudeLessOrEqualThan =
filterQuery.LongitudeLessOrEqualThan,
LatitudeGreaterOrEqualThan =
filterQuery.LatitudeGreaterOrEqualThan,
LatitudeLessOrEqualThan =
filterQuery.LatitudeLessOrEqualThan,
VehicleType = VehicleType.FromName(filterQuery.VehicleType),
CountryGuid = filterQuery.CountryUuid, CountryGuid = filterQuery.CountryUuid,
RegionGuid = filterQuery.RegionUuid, RegionGuid = filterQuery.RegionUuid,
CityGuid = filterQuery.CityUuid CityGuid = filterQuery.CityUuid