/// <summary> /// Get the processor settings from the extended data collection /// </summary> /// <param name="extendedData">The <see cref="ExtendedDataCollection"/></param> /// <returns>The deserialized <see cref="CardConnectProcessorSettings"/></returns> public static CardConnectProcessorSettings GetProcessorSettings(this ExtendedDataCollection extendedData) { if (!extendedData.ContainsKey(Constants.ExtendedDataKeys.ProcessorSettings)) { return(new CardConnectProcessorSettings()); } CardConnectProcessorSettings settings = JsonConvert.DeserializeObject <CardConnectProcessorSettings>(extendedData.GetValue(Constants.ExtendedDataKeys.ProcessorSettings)); return(settings); }
/// <summary> /// Initializes the controller. /// </summary> private void Initialize() { var provider = GatewayContext.Payment.GetProviderByKey(Guid.Parse(Constants.GatewayProviderSettingsKey)) as CardConnectPaymentGatewayProvider; if (provider == null) { var nullRef = new NullReferenceException("CardConnectPaymentGatewayProvider is not activated or has not been resolved."); LogHelper.Error <CardConnectPaymentController>("Failed to find active CardConnectPaymentGatewayProvider", nullRef); throw nullRef; } // instantiate the service _cardConnectServices = new CardConnectService(provider.ExtendedData.GetProcessorSettings()); CardConnectProcessorSettings settings = provider.ExtendedData.GetProcessorSettings(); _successUrl = settings.SuccessUrl; _cancelUrl = settings.CancelUrl; //_deleteInvoiceOnCancel = settings.DeleteInvoiceOnCancel; }
/// <summary> /// Saves the processor settings to an extended data collection /// </summary> /// <param name="extendedData">The <see cref="ExtendedDataCollection"/></param> /// <param name="processorSettings">The <see cref="CardConnectProcessorSettings"/> to be serialized and saved</param> public static void SaveProcessorSettings(this ExtendedDataCollection extendedData, CardConnectProcessorSettings processorSettings) { var settingsJson = JsonConvert.SerializeObject(processorSettings); extendedData.SetValue(Constants.ExtendedDataKeys.ProcessorSettings, settingsJson); }