Compare commits

..
10 Commits
Author SHA1 Message Date
Fedde 0cce247538 Update 'README.MD' 2023-03-28 11:53:43 +00:00
mark cb999caf46 Merge pull request 'Update 'FarmmapsApi/Constants.cs'' (#14) from fedde-patch-1 into master
Reviewed-on: #14
2022-05-25 08:18:42 +00:00
Fedde 721b33b4e5 Update 'FarmmapsApi/Constants.cs' 2022-04-25 14:44:57 +00:00
mark 3da2b71d62 Merge pull request 'Update 'README.MD'' (#13) from fedde-patch-1 into master
Reviewed-on: #13
Reviewed-by: Mark van der Wal <mark.vanderwal@akkerweb.nl>
2022-02-28 13:54:46 +00:00
Fedde b7b669bcfd Update 'README.MD' 2022-02-28 13:50:44 +00:00
mark 0f9fe0a433 Updated receiving of root items 2022-02-28 14:29:56 +01:00
mark 5c38ff99dc Merge pull request 'UserInput' (#12) from UserInput into master
Reviewed-on: #12
Reviewed-by: Mark van der Wal <mark.vanderwal@akkerweb.nl>
2022-02-28 13:28:24 +00:00
Fedde Sijbrandij c29f996d23 small update 2022-02-28 13:28:24 +00:00
Fedde 44cde0fe15 added download of all crop recordings of 1 field - using a manual croprecording itemcode 2022-02-28 13:28:24 +00:00
mark 0767b3fff8 Merge pull request 'NBSInput' (#11) from NBSInput into master
Reviewed-on: #11
Reviewed-by: Mark van der Wal <mark.vanderwal@akkerweb.nl>
2022-02-24 15:49:06 +00:00
11 changed files with 53 additions and 29 deletions
+2 -2
View File
@@ -44,14 +44,14 @@ namespace FarmMapsBlight
await _farmmapsApiService.GetCurrentUserCodeAsync(); await _farmmapsApiService.GetCurrentUserCodeAsync();
var roots = await _farmmapsApiService.GetCurrentUserRootsAsync(); var roots = await _farmmapsApiService.GetCurrentUserRootsAsync();
var myDrive = roots.SingleOrDefault(r => r.Name == "My drive"); var myDrive = roots.SingleOrDefault(r => r.Name == "USER_FILES");
if (myDrive == null) if (myDrive == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
return; return;
} }
var uploadedRoot = roots.SingleOrDefault(r => r.Name == "Uploaded"); var uploadedRoot = roots.SingleOrDefault(r => r.Name == "USER_IN");
if (uploadedRoot == null) if (uploadedRoot == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
+1 -1
View File
@@ -19,7 +19,7 @@ namespace FarmmapsApiSamples
public const string VRAHAULMKILLING_TASK = "vnd.farmmaps.task.vrahaulmkilling"; public const string VRAHAULMKILLING_TASK = "vnd.farmmaps.task.vrahaulmkilling";
public const string VRAPLANTING_TASK = "vnd.farmmaps.task.vrapoten"; public const string VRAPLANTING_TASK = "vnd.farmmaps.task.vrapoten";
public const string VRAZONERING_TASK = "vnd.farmmaps.task.vrazonering"; public const string VRAZONERING_TASK = "vnd.farmmaps.task.vrazonering";
public const string SATELLITE_TASK = "vnd.farmmaps.task.satellite"; public const string SATELLITE_TASK = "vnd.farmmaps.task.sentinelhub";
public const string VANDERSAT_TASK = "vnd.farmmaps.task.vandersat"; public const string VANDERSAT_TASK = "vnd.farmmaps.task.vandersat";
public const string TASKMAP_TASK = "vnd.farmmaps.task.taskmap"; public const string TASKMAP_TASK = "vnd.farmmaps.task.taskmap";
public const string WORKFLOW_TASK = "vnd.farmmaps.task.workflow"; public const string WORKFLOW_TASK = "vnd.farmmaps.task.workflow";
+14 -1
View File
@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
@@ -95,7 +96,19 @@ namespace FarmmapsApi.Services
var jsonString = await response.Content.ReadAsStringAsync(); var jsonString = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<List<UserRoot>>(jsonString); var roots = JsonConvert.DeserializeObject<List<UserRoot>>(jsonString);
roots.ForEach(v =>
{
v.Name = GetSuffixFromSystemItemCode(v.Code);
});
return roots;
}
private static string GetSuffixFromSystemItemCode(string itemCode)
{
string[] strArray = itemCode.Split(":");
return strArray.Length == 2 ? strArray[1] : throw new ArgumentException("No system item code :" + itemCode);
} }
public async Task<Item> GetItemAsync(string itemCode, string itemType = null, JObject dataFilter = null) public async Task<Item> GetItemAsync(string itemCode, string itemType = null, JObject dataFilter = null)
@@ -225,14 +225,14 @@ LIMIT 5;", schemaname, parceltablename, groenmonitorlatestviewname); //LIMIT x
LoadSettings(settingsfile); LoadSettings(settingsfile);
var uploadedRoot = roots.SingleOrDefault(r => r.Name == "Uploaded"); var uploadedRoot = roots.SingleOrDefault(r => r.Name == "USER_IN");
if (uploadedRoot == null) if (uploadedRoot == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
return; return;
} }
var myDriveRoot = roots.SingleOrDefault(r => r.Name == "My drive"); var myDriveRoot = roots.SingleOrDefault(r => r.Name == "USER_FILES");
if (myDriveRoot == null) if (myDriveRoot == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
@@ -82,14 +82,14 @@ namespace FarmmapsDataDownload
LoadSettings(settingsfile); LoadSettings(settingsfile);
var uploadedRoot = roots.SingleOrDefault(r => r.Name == "Uploaded"); var uploadedRoot = roots.SingleOrDefault(r => r.Name == "USER_IN");
if (uploadedRoot == null) if (uploadedRoot == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
return; return;
} }
var myDriveRoot = roots.SingleOrDefault(r => r.Name == "My drive"); var myDriveRoot = roots.SingleOrDefault(r => r.Name == "USER_FILES");
if (myDriveRoot == null) if (myDriveRoot == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
@@ -116,7 +116,6 @@ namespace FarmmapsDataDownload
if (input.GetCropRecordings) if (input.GetCropRecordings)
{ {
var crprecItem = input.CrprecItem; var crprecItem = input.CrprecItem;
//Item cropfieldItem = ;
_logger.LogInformation($"Trying to get crop recordings of croprecording: {crprecItem}"); _logger.LogInformation($"Trying to get crop recordings of croprecording: {crprecItem}");
var cropRec = await _farmmapsApiService.GetItemChildrenAsync(crprecItem, CROPREC_ITEMTYPE); var cropRec = await _farmmapsApiService.GetItemChildrenAsync(crprecItem, CROPREC_ITEMTYPE);
@@ -129,7 +128,7 @@ namespace FarmmapsDataDownload
var cropRecPath = Path.Combine(downloadFolder, $"croprecordings_{crprecItem}.json"); var cropRecPath = Path.Combine(downloadFolder, $"croprecordings_{crprecItem}.json");
_logger.LogInformation($"Found {cropRec.Count} crop recordings"); _logger.LogInformation($"Found {cropRec.Count} crop recordings");
var count = 0; var count = 0;
TimeSpan.FromSeconds(0.5); await Task.Delay(500);
foreach (var item in cropRec) foreach (var item in cropRec)
{ {
Console.WriteLine($"Crop recording #{count}: {item.Name}"); Console.WriteLine($"Crop recording #{count}: {item.Name}");
@@ -45,14 +45,14 @@ namespace FarmmapsHaulmkilling
await _farmmapsApiService.GetCurrentUserCodeAsync(); await _farmmapsApiService.GetCurrentUserCodeAsync();
var roots = await _farmmapsApiService.GetCurrentUserRootsAsync(); var roots = await _farmmapsApiService.GetCurrentUserRootsAsync();
var myDrive = roots.SingleOrDefault(r => r.Name == "My drive"); var myDrive = roots.SingleOrDefault(r => r.Name == "USER_FILES");
if (myDrive == null) if (myDrive == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
return; return;
} }
var uploadedRoot = roots.SingleOrDefault(r => r.Name == "Uploaded"); var uploadedRoot = roots.SingleOrDefault(r => r.Name == "USER_IN");
if (uploadedRoot == null) if (uploadedRoot == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
+4 -4
View File
@@ -50,14 +50,14 @@ namespace FarmmapsHerbicide
private async Task SingleLutumTiffFlow(List<UserRoot> roots) private async Task SingleLutumTiffFlow(List<UserRoot> roots)
{ {
var myDrive = roots.SingleOrDefault(r => r.Name == "My drive"); var myDrive = roots.SingleOrDefault(r => r.Name == "USER_FILES");
if (myDrive == null) if (myDrive == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
return; return;
} }
var uploadedRoot = roots.SingleOrDefault(r => r.Name == "Uploaded"); var uploadedRoot = roots.SingleOrDefault(r => r.Name == "USER_IN");
if (uploadedRoot == null) if (uploadedRoot == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
@@ -91,14 +91,14 @@ namespace FarmmapsHerbicide
private async Task MultiVanDenBorneShapeFlow(List<UserRoot> roots) private async Task MultiVanDenBorneShapeFlow(List<UserRoot> roots)
{ {
var myDrive = roots.SingleOrDefault(r => r.Name == "My drive"); var myDrive = roots.SingleOrDefault(r => r.Name == "USER_FILES");
if (myDrive == null) if (myDrive == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
return; return;
} }
var uploadedRoot = roots.SingleOrDefault(r => r.Name == "Uploaded"); var uploadedRoot = roots.SingleOrDefault(r => r.Name == "USER_IN");
if (uploadedRoot == null) if (uploadedRoot == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
+2 -2
View File
@@ -64,13 +64,13 @@ namespace FarmmapsNbs {
LoadSettings(settingsfile); LoadSettings(settingsfile);
var uploadedRoot = roots.SingleOrDefault(r => r.Name == "Uploaded"); var uploadedRoot = roots.SingleOrDefault(r => r.Name == "USER_IN");
if (uploadedRoot == null) { if (uploadedRoot == null) {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
return; return;
} }
var myDriveRoot = roots.SingleOrDefault(r => r.Name == "My drive"); var myDriveRoot = roots.SingleOrDefault(r => r.Name == "USER_FILES");
if (myDriveRoot == null) { if (myDriveRoot == null) {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
return; return;
+2 -2
View File
@@ -61,13 +61,13 @@ namespace FarmmapsVRApoten
bool countPerArea = input.CountPerArea; bool countPerArea = input.CountPerArea;
var inputLayerName = input.InputLayerName; var inputLayerName = input.InputLayerName;
var myDrive = roots.SingleOrDefault(r => r.Name == "My drive"); var myDrive = roots.SingleOrDefault(r => r.Name == "USER_FILES");
if (myDrive == null) { if (myDrive == null) {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
return; return;
} }
var uploadedRoot = roots.SingleOrDefault(r => r.Name == "Uploaded"); var uploadedRoot = roots.SingleOrDefault(r => r.Name == "USER_IN");
if (uploadedRoot == null) { if (uploadedRoot == null) {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
return; return;
+2 -2
View File
@@ -66,7 +66,7 @@ namespace FarmmapsZonering
private async Task ZoningAsync(List<UserRoot> roots, ZoneringInput input) private async Task ZoningAsync(List<UserRoot> roots, ZoneringInput input)
{ {
var myDrive = roots.SingleOrDefault(r => r.Name == "My drive"); var myDrive = roots.SingleOrDefault(r => r.Name == "USER_FILES");
if (myDrive == null) if (myDrive == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
@@ -83,7 +83,7 @@ namespace FarmmapsZonering
// Load settings from previous cropfield // Load settings from previous cropfield
LoadSettings(settingsfile); LoadSettings(settingsfile);
var uploadedRoot = roots.SingleOrDefault(r => r.Name == "Uploaded"); var uploadedRoot = roots.SingleOrDefault(r => r.Name == "USER_IN");
if (uploadedRoot == null) if (uploadedRoot == null)
{ {
_logger.LogError("Could not find a needed root item"); _logger.LogError("Could not find a needed root item");
+13 -1
View File
@@ -1,15 +1,27 @@
##### NOT PRODUCTION READY CODE, JUST AN EXAMPLE ##### NOT PRODUCTION READY CODE, JUST AN EXAMPLE
Put your clientId and clientSecret in a newly created appsettings.secrets.json file inside the root of the Secrets project. Put your clientId and clientSecret or your Farmmaps-account data (username and password) in a newly created appsettings.secrets.json file inside the root of the Secrets project.
**appsettings.secrets.json** **appsettings.secrets.json**
``` ```
{ {
//API credential sign-in
"ClientId": "<clientId>", "ClientId": "<clientId>",
"ClientSecret": "<clientSecret>" "ClientSecret": "<clientSecret>"
} }
``` ```
Or when using a Farmmaps account to sign-in
**appsettings.secrets.json**
```
{
//Sign-in using farmmaps account
"Username": "",
"Password": ""
}
```
* Isn't 100% complete. * Isn't 100% complete.
* Needs proper testing of all public api methods. * Needs proper testing of all public api methods.
* Needs documentation of all public api methods. * Needs documentation of all public api methods.