From 56193b1b39a3891f7bf2dbd67f6f1a5221a7c7c4 Mon Sep 17 00:00:00 2001 From: Mark van der Wal Date: Tue, 14 Apr 2020 20:50:27 +0200 Subject: [PATCH] Added ability to query for herbicide agents. --- FarmmapsHerbicide/HerbicideApplication.cs | 22 +++------------------- FarmmapsHerbicide/HerbicideService.cs | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/FarmmapsHerbicide/HerbicideApplication.cs b/FarmmapsHerbicide/HerbicideApplication.cs index 6ac2257..fc189c6 100644 --- a/FarmmapsHerbicide/HerbicideApplication.cs +++ b/FarmmapsHerbicide/HerbicideApplication.cs @@ -30,25 +30,6 @@ namespace FarmmapsHerbicide _farmmapsApiService = farmmapsApiService; _generalService = generalService; _herbicideService = herbicideService; - - _liberatorTarweAgent = new HerbicideAgent() - { - Name = "Liberator", - SoilType = "Klei", - ExtraInputType = "OrganicMatter", - ActiveSubstanceContent = "diflu100+flufenacet400", - MinDosis = 0.33f, - MaxDosis = 0.6f, - A = 0.007f, - B = 0.25f, - C = 1.05f, - D = 97f, - E = 3f, - P = 1f, - Crop = "Tarwe", - Description = "Org. stof arme grond", - TankMix = string.Empty - }; } public async Task RunAsync() @@ -59,6 +40,9 @@ namespace FarmmapsHerbicide // !! this call is needed the first time an api is called with a fresh clientid and secret !! await _farmmapsApiService.GetCurrentUserCodeAsync(); var roots = await _farmmapsApiService.GetCurrentUserRootsAsync(); + + var agents = await _herbicideService.GetHerbicideAgents(); + _liberatorTarweAgent = agents.SingleOrDefault(a => a.Name.Equals("Liberator")); await SingleLutumTiffFlow(roots); await MultiVanDenBorneShapeFlow(roots); diff --git a/FarmmapsHerbicide/HerbicideService.cs b/FarmmapsHerbicide/HerbicideService.cs index 8fc1926..0e415c3 100644 --- a/FarmmapsHerbicide/HerbicideService.cs +++ b/FarmmapsHerbicide/HerbicideService.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using FarmmapsApi.Models; using FarmmapsApi.Services; @@ -24,6 +26,18 @@ namespace FarmmapsHerbicide _generalService = generalService; } + public async Task> GetHerbicideAgents() + { + var itemType = "vnd.farmmaps.package.vra.herbicide"; + var vraHerbicideDataItems = await _farmmapsApiService.GetItemsAsync(string.Empty, itemType); + + var item = vraHerbicideDataItems.FirstOrDefault(); + if (item == null) + return null; + + return item.Data.ContainsKey("agents") ? item.Data["agents"].ToObject>() : null; + } + public async Task CalculateApplicationMapAsync(Item cropfieldItem, HerbicideAgent agent, params Item[] inputItem) { if (inputItem.Length == 0)