Skip to content

Commit

Permalink
Исправшение ошибок
Browse files Browse the repository at this point in the history
- Исправлены опечатки в сообщениях об ошибках.
- Добавлена возможность не указывать явно список регионов для загрукзи в файле конфигурации. Тогда будут загружены все регионы.
- Улучшена обработка ошибки, если по регион нет данных в архиве дистрибутива ФИАС. Загрузка данных продолжится по другим регионам.
  • Loading branch information
YPermitin committed Nov 17, 2023
1 parent 5827b22 commit 9af1337
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ public string ExtractDataForRegion(Region region)
if (regionItem == null)
{
throw new RegionNotFoundException(
$"Не найден регион с кодом \"{region}\" среди достпных регионов в дистрибутиве ФИАС.",
$"Не найден регион с кодом \"{region.Code}\" среди доступных регионов в дистрибутиве ФИАС.",
region.ToString());
}

Expand Down
43 changes: 33 additions & 10 deletions Libs/YPermitin.FIASToolSet.Jobs/JobItems/InstallAndUpdateFIASJob.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Quartz;
using YPermitin.FIASToolSet.DistributionBrowser.Models;
using YPermitin.FIASToolSet.DistributionLoader;
using YPermitin.FIASToolSet.DistributionLoader.Exceptions;

namespace YPermitin.FIASToolSet.Jobs.JobItems;

Expand Down Expand Up @@ -32,14 +33,22 @@ public InstallAndUpdateFIASJob(
_configuration = configuration;

_workingDirectory = _configuration.GetValue("FIASToolSet:WorkingDirectory", string.Empty);
_availableRegions = _configuration

var availableRegionsAsStrings = _configuration
.GetSection("FIASToolSet:Regions")
.Get<List<string>>()
.DefaultIfEmpty()
.Where(e => int.TryParse(e, out _))
.Select(int.Parse)
.ToList();
.Get<List<string>>();
if (availableRegionsAsStrings == null || availableRegionsAsStrings.Count == 0)
{
_availableRegions = new List<int>();
}
else
{
_availableRegions = availableRegionsAsStrings
.DefaultIfEmpty()
.Where(e => int.TryParse(e, out _))
.Select(int.Parse)
.ToList();
}

_removeArchiveDistributionFiles =
_configuration.GetValue("FIASToolSet:ClearTempDistributionFiles:RemoveArchiveDistributionFiles", false);
Expand Down Expand Up @@ -129,11 +138,25 @@ await loader.DownloadAndExtractDistribution(args =>
await loader.LoadNormativeDocKinds();
await loader.LoadNormativeDocTypes();

var availableRegions = loader.GetAvailableRegions()
.Where(e => _availableRegions.Contains(e.Code));
var availableRegions = loader.GetAvailableRegions();
if (_availableRegions.Count > 0)
{
availableRegions = availableRegions
.Where(e => _availableRegions.Contains(e.Code))
.ToList();
}

foreach (var availableRegion in availableRegions)
{
loader.ExtractDataForRegion(availableRegion);
try
{
loader.ExtractDataForRegion(availableRegion);
}
catch (RegionNotFoundException)
{
_logger.LogError($"Не найден регион с кодом ${availableRegion.Code} среди доступных регионов в дистрибутиве ФИАС. Загрузка пропущена.");
continue;
}

await loader.LoadNormativeDocuments(availableRegion);
await loader.LoadAddressObjects(availableRegion);
Expand Down

0 comments on commit 9af1337

Please sign in to comment.