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 _logger; private readonly FarmmapsApiService _farmmapsApiService; public DefaultApp(ILogger 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); } } } }