53 lines
1.7 KiB
C#
53 lines
1.7 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using FarmmapsApi.Services;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace FarmmapsApiSamples
|
|
{
|
|
public class DefaultApp : IApp
|
|
{
|
|
private readonly ILogger<DefaultApp> _logger;
|
|
private readonly FarmmapsApiService _farmmapsApiService;
|
|
|
|
public DefaultApp(ILogger<DefaultApp> logger, FarmmapsApiService farmmapsApiService)
|
|
{
|
|
_logger = logger;
|
|
_farmmapsApiService = farmmapsApiService;
|
|
}
|
|
|
|
public async Task RunAsync()
|
|
{
|
|
try
|
|
{
|
|
await _farmmapsApiService.AuthenticateAsync();
|
|
|
|
_logger.LogInformation("Authenticated client credentials");
|
|
|
|
var user = await _farmmapsApiService.GetCurrentUserCodeAsync();
|
|
_logger.LogInformation($"Usercode: {user}");
|
|
|
|
var roots = (await _farmmapsApiService.GetCurrentUserRootsAsync()).ToList();
|
|
foreach (var userRoot in roots)
|
|
{
|
|
_logger.LogInformation($"{userRoot.Name} - {userRoot.Code}");
|
|
}
|
|
|
|
var myDriveRoot = roots.SingleOrDefault(r => r.Name == "My drive");
|
|
if(myDriveRoot != null)
|
|
{
|
|
var items = await _farmmapsApiService.GetItemChildrenAsync(myDriveRoot.Code);
|
|
foreach (var item in items)
|
|
{
|
|
_logger.LogInformation($"{item.Name} - {item.ItemType}");
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
} |