refactor(database): update seed pipeline to use dapper (#277)

This commit is contained in:
Aaron Po
2026-09-05 00:37:14 -04:00
committed by GitHub
parent 78ad32e93a
commit d9411eb00e
43 changed files with 1023 additions and 735 deletions

View File

@@ -0,0 +1,14 @@
using Features.Locations.Dtos;
using Features.Locations.Repository;
using MediatR;
namespace Features.Locations.Queries.GetAllCities;
public class GetAllCitiesHandler(ILocationRepository repository)
: IRequestHandler<GetAllCitiesQuery, IEnumerable<CityDto>>
{
public Task<IEnumerable<CityDto>> Handle(
GetAllCitiesQuery request,
CancellationToken cancellationToken
) => repository.GetAllCitiesAsync(request.Limit, request.Offset);
}

View File

@@ -0,0 +1,6 @@
using Features.Locations.Dtos;
using MediatR;
namespace Features.Locations.Queries.GetAllCities;
public record GetAllCitiesQuery(int? Limit, int? Offset) : IRequest<IEnumerable<CityDto>>;

View File

@@ -0,0 +1,10 @@
using Features.Locations.Repository;
using MediatR;
namespace Features.Locations.Queries.GetCity;
public class GetCityHandler(ILocationRepository repository) : IRequestHandler<GetCityQuery, Guid?>
{
public Task<Guid?> Handle(GetCityQuery request, CancellationToken cancellationToken) =>
repository.GetCityIdAsync(request.CityName, request.StateProvinceIsoCode);
}

View File

@@ -0,0 +1,5 @@
using MediatR;
namespace Features.Locations.Queries.GetCity;
public record GetCityQuery(string CityName, string StateProvinceIsoCode) : IRequest<Guid?>;

View File

@@ -0,0 +1,12 @@
using Features.Locations.Dtos;
using Features.Locations.Repository;
using MediatR;
namespace Features.Locations.Queries.GetCityById;
public class GetCityByIdHandler(ILocationRepository repository)
: IRequestHandler<GetCityByIdQuery, CityDto?>
{
public Task<CityDto?> Handle(GetCityByIdQuery request, CancellationToken cancellationToken) =>
repository.GetCityByIdAsync(request.CityId);
}

View File

@@ -0,0 +1,6 @@
using Features.Locations.Dtos;
using MediatR;
namespace Features.Locations.Queries.GetCityById;
public record GetCityByIdQuery(Guid CityId) : IRequest<CityDto?>;

View File

@@ -0,0 +1,11 @@
using Features.Locations.Repository;
using MediatR;
namespace Features.Locations.Queries.GetCountry;
public class GetCountryHandler(ILocationRepository repository)
: IRequestHandler<GetCountryQuery, Guid?>
{
public Task<Guid?> Handle(GetCountryQuery request, CancellationToken cancellationToken) =>
repository.GetCountryIdAsync(request.IsoCode);
}

View File

@@ -0,0 +1,5 @@
using MediatR;
namespace Features.Locations.Queries.GetCountry;
public record GetCountryQuery(string IsoCode) : IRequest<Guid?>;

View File

@@ -0,0 +1,11 @@
using Features.Locations.Repository;
using MediatR;
namespace Features.Locations.Queries.GetStateProvince;
public class GetStateProvinceHandler(ILocationRepository repository)
: IRequestHandler<GetStateProvinceQuery, Guid?>
{
public Task<Guid?> Handle(GetStateProvinceQuery request, CancellationToken cancellationToken) =>
repository.GetStateProvinceIdAsync(request.IsoCode);
}

View File

@@ -0,0 +1,5 @@
using MediatR;
namespace Features.Locations.Queries.GetStateProvince;
public record GetStateProvinceQuery(string IsoCode) : IRequest<Guid?>;