using System; using System.Threading.Tasks; using FarmmapsApi.Models; using FarmmapsApi.Services; using Microsoft.Extensions.Logging; namespace FarmmapsApiSamples { public class Application : IApp { private readonly ILogger _logger; private readonly FarmmapsApiService _farmmapsApiService; private readonly FarmmapsEventHub _farmmapsEventHub; private readonly NitrogenService _nitrogenService; private readonly HerbicideService _herbicideService; public Application(ILogger logger, FarmmapsApiService farmmapsApiService, FarmmapsEventHub farmmapsEventHub, NitrogenService nitrogenService, HerbicideService herbicideService) { _logger = logger; _farmmapsApiService = farmmapsApiService; _farmmapsEventHub = farmmapsEventHub; _nitrogenService = nitrogenService; _herbicideService = herbicideService; _farmmapsEventHub.EventCallback += OnEvent; } private void OnEvent(EventMessage @event) { // _logger.LogInformation(@event.EventType); } public async Task RunAsync() { try { // !! 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(); // await _nitrogenService.TestFlow(roots); await _herbicideService.TestFlow(roots); } catch (Exception ex) { _logger.LogError(ex.Message); } } } }