fix bug where new cities are added

This commit is contained in:
Fox 2026-06-24 12:14:19 +01:00
parent 70a5eb9103
commit d79a82adee

View File

@ -66,9 +66,9 @@ internal class SolicitorsRepository(IRepoSetupService setup)
cancellationToken: cancellationToken);
if (matchingSolicitor is null)
await AddNewSolicitor(solicitor, cancellationToken);
await AddNewSolicitorAsync(solicitor, cancellationToken);
else
UpdateExistingSolicitor(solicitor, matchingSolicitor);
await UpdateExistingSolicitorAsync(solicitor, matchingSolicitor, cancellationToken);
try
{
@ -94,7 +94,7 @@ internal class SolicitorsRepository(IRepoSetupService setup)
return SaveChangesAsync(cancellationToken);
}
private async Task AddNewSolicitor(
private async Task AddNewSolicitorAsync(
SolicitorData solicitor,
CancellationToken cancellationToken)
{
@ -192,19 +192,22 @@ internal class SolicitorsRepository(IRepoSetupService setup)
location.LocationRatings.Add(newLocRating);
}
private void UpdateExistingSolicitor(
private Task UpdateExistingSolicitorAsync(
SolicitorData solicitor,
Solicitor matchingSolicitor)
Solicitor matchingSolicitor,
CancellationToken cancellationToken)
{
UpdateSolicitorRootData(matchingSolicitor, solicitor);
UpdateExistingCities(solicitor, matchingSolicitor);
var citiesUpdate = UpdateExistingCitiesAsync(solicitor, matchingSolicitor, cancellationToken);
UpdateExistingRatings(solicitor, matchingSolicitor);
UpdateExistingLocations(solicitor, matchingSolicitor);
return citiesUpdate;
}
private void UpdateExistingCities(
private async Task UpdateExistingCitiesAsync(
SolicitorData solicitor,
Solicitor matchingSolicitor)
Solicitor matchingSolicitor,
CancellationToken cancellationToken)
{
var lostCities = matchingSolicitor.Cities
.Where(city => solicitor.Cities.All(cityName => cityName != city.Name))
@ -220,6 +223,8 @@ internal class SolicitorsRepository(IRepoSetupService setup)
var matchingCity = matchingSolicitor.Cities
.FirstOrDefault(city => cityName == city.Name);
matchingCity ??= await GetCityByNameAsync(cityName, cancellationToken);
if (matchingCity is null)
AddNewCityToSolicitor(cityName, matchingSolicitor);
else