diff --git a/FarmmapsApi/Services/GeneralService.cs b/FarmmapsApi/Services/GeneralService.cs index e71a5b0..e553174 100644 --- a/FarmmapsApi/Services/GeneralService.cs +++ b/FarmmapsApi/Services/GeneralService.cs @@ -64,34 +64,9 @@ namespace FarmmapsApi.Services if (result.Progress.Status == UploadStatus.Failed) return null; - var zipName = Path.GetFileName(filePath); - Item shapeItem = null; - await PollTask(TimeSpan.FromSeconds(3), async source => - { - _logger.LogInformation($"Searching for {itemName} item"); - var uploadedFilesChildren = await _farmmapsApiService.GetItemChildrenAsync(root.Code); - var zipItems = uploadedFilesChildren.Where(i => i.Name.Contains(zipName)); - - foreach (var zipItem in zipItems) - { - List items = await _farmmapsApiService.GetItemChildrenAsync(zipItem.Code, - SHAPE_PROCESSED_ITEMTYPE); - - items = items.Where(i => i.Created >= startUpload).OrderByDescending(i => i.Created).ToList(); - - if (items.Any()) - { - shapeItem = items.First(i => i.Name.Contains(itemName)); - if (shapeItem != null) - { - source.Cancel(); - break; - } - } - } - }); - - return shapeItem; + return await FindChildItemAsync(root.Code, SHAPE_PROCESSED_ITEMTYPE, itemName, + i => i.Created >= startUpload && + i.Name.ToLower().Contains(itemName.ToLower()));; } public async Task ShapeToGeotiff(Item shapeItem) @@ -172,13 +147,9 @@ namespace FarmmapsApi.Services { _logger.LogInformation($"Trying to get {containsName} data"); var uploadedFilesChildren = await _farmmapsApiService.GetItemChildrenAsync(parentCode, itemType); - if (uploadedFilesChildren.Count > 0) - { - Func func = filter ?? (i => i.Name.ToLower().Contains(containsName.ToLower())); - dataItem = uploadedFilesChildren.FirstOrDefault(func); - source.Cancel(); - } - else if (tries == maxTries) + Func func = filter ?? (i => i.Name.ToLower().Contains(containsName.ToLower())); + dataItem = uploadedFilesChildren.FirstOrDefault(func); + if (dataItem != null || tries == maxTries) { source.Cancel(); } diff --git a/FarmmapsNbs/NbsApplication.cs b/FarmmapsNbs/NbsApplication.cs index ee6eda3..51bfc21 100644 --- a/FarmmapsNbs/NbsApplication.cs +++ b/FarmmapsNbs/NbsApplication.cs @@ -75,8 +75,7 @@ namespace FarmmapsNbs _logger.LogError("Could not find a needed root item"); return; } - - + var cropfieldItem = await _generalService.CreateCropfieldItemAsync(myDriveRoot.Code, $"VRA NBS cropfield {input.OutputFileName}", plantingDate.Year, input.GeometryJson.ToString(Formatting.None)); diff --git a/FarmmapsPoten/FarmmapsPoten.csproj b/FarmmapsPoten/FarmmapsPoten.csproj index f76d9da..1ff2fe3 100644 --- a/FarmmapsPoten/FarmmapsPoten.csproj +++ b/FarmmapsPoten/FarmmapsPoten.csproj @@ -12,6 +12,9 @@ Always + + PreserveNewest +