public void Run() { var warehouses = _acumaticaInventoryApi.RetrieveWarehouses().DeserializeFromJson <List <Warehouse> >(); var warehouseRecords = _dataRepository.RetrieveWarehouses(); foreach (var warehouse in warehouses) { using (var transaction = _dataRepository.BeginTransaction()) { var warehouseRecord = warehouseRecords.FindByAcumaticaId(warehouse); if (warehouseRecord == null) { var newDataWarehouse = new AcumaticaWarehouse { AcumaticaWarehouseId = warehouse.WarehouseID.value, DateCreated = DateTime.UtcNow, LastUpdated = DateTime.UtcNow, }; _dataRepository.InsertWarehouse(newDataWarehouse); } else { warehouseRecord.LastUpdated = DateTime.UtcNow; _dataRepository.SaveChanges(); } _acumaticaJsonService.Upsert( AcumaticaJsonType.SalesOrderShipments, warehouse.WarehouseID.value, warehouse.SerializeToJson()); transaction.Commit(); } } }