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