public void ReconcilePaymentGatewaysWithRefData() { var referenceData = RetrieveRefData(); var settingsGateways = _settingsRepository.RetrievePaymentGateways(); var deleteList = new List <PaymentGateway>(); foreach (var settingsGateway in settingsGateways) { var selectedShopifyGatewayId = settingsGateway.ShopifyGatewayId; var selectedPaymentMethod = settingsGateway.AcumaticaPaymentMethod; // Remove if Payment Gateway is no longer supported by Bridge // if (!referenceData.PaymentGateways.Any(x => x.Id == selectedShopifyGatewayId)) { _logService.Log($"Payment Gateway {selectedShopifyGatewayId} is missing"); deleteList.Add(settingsGateway); continue; } // Remove if Payment Method is missing from Acumatica pull // var acumaticaPaymentMethod = referenceData .PaymentMethods .FirstOrDefault(x => x.PaymentMethod == selectedPaymentMethod); if (acumaticaPaymentMethod == null) { _logService.Log($"Payment Method {selectedPaymentMethod} is missing"); deleteList.Add(settingsGateway); continue; } // Remove if Acumatica Payment method is invalid // if (!acumaticaPaymentMethod.Validation.Success) { _logService.Log($"Payment Method {selectedPaymentMethod} is invalid"); deleteList.Add(settingsGateway); } } foreach (var gateway in deleteList) { _settingsRepository.DeletePaymentGateway(gateway.Id); } }