fix bug where new cities are added
This commit is contained in:
parent
70a5eb9103
commit
d79a82adee
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user