public async Task BeginAsync(bool forceUpdate = false) { var importedFarms = await FarmDataService.GetFarmDataAsync(); var dbFarms = await FarmRepository.ListAllAsync(); Logger.LogInformation($"Found {importedFarms.Count} farms in data service and {dbFarms.Count} farms in the database"); foreach (var importedFarm in importedFarms) { var dbFarm = dbFarms.FirstOrDefault(f => f.Name == importedFarm.Name); if (dbFarm == null) { await CreateFarmAsync(importedFarm); } else { await UpdateFarmAsync(importedFarm, dbFarm, forceUpdate); } } foreach (var dbFarm in dbFarms.Where(f => !importedFarms.Any(i => i.Name == f.Name))) { await DeleteFarmAsync(dbFarm); } }