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