Example #1
0
        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);
            }
        }