public FileAddressProvider(string file) { if (file == null) throw new ArgumentNullException("file"); string[] lines = File.ReadAllLines(file); foreach(string line in lines) { string lineTrimmed = line.Trim(); if (lineTrimmed.StartsWith("#")) continue; int equalChar = lineTrimmed.IndexOf('='); if (equalChar < 0) continue; string key = lineTrimmed.Substring(0, equalChar).Trim(); string value = lineTrimmed.Remove(0, equalChar + 1).Trim(); if (key.ToLower() == "fallback") { switch (value.ToLower()) { case "kugelmatik": fallback = new KugelmatikAddressProvider(); break; default: Log.Error("FileAddressProvider: unknown fallback {0}", value); break; } } else addresses.Add(key, IPAddress.Parse(value)); } }
public void TestAcceptLast() { string xml = "<remote-addresses xmlns=\"http://schemas.tangosol.com/cache\"><socket-address><address>127.0.0.1</address><port>80</port></socket-address><socket-address><address>127.0.0.1</address><port>81</port></socket-address></remote-addresses>"; IXmlDocument config = XmlHelper.LoadXml(new StringReader(xml)); Assert.IsNotNull(config); ConfigurableAddressProviderFactory factory = new ConfigurableAddressProviderFactory(); factory.Config = config; IAddressProvider addrProvider = factory.CreateAddressProvider(); Assert.IsNotNull(addrProvider); Assert.IsInstanceOf(typeof(ConfigurableAddressProvider), addrProvider); string addrProviderString = addrProvider.ToString(); Assert.IsTrue(addrProviderString.Equals("[127.0.0.1:81,127.0.0.1:80]") || addrProviderString.Equals("[127.0.0.1:80,127.0.0.1:81]")); IPEndPoint addr = addrProvider.NextAddress; Assert.IsNotNull(addr); addrProvider.Reject(null); addr = addrProvider.NextAddress; Assert.IsNotNull(addr); addrProvider.Accept(); addr = addrProvider.NextAddress; Assert.IsNotNull(addr); }
public RouteBuilder(IContainer container, IAssemblyScanner assemblyScanner, IAddressProvider addressProvider, MessageConventions conventions) { this.container = container; this.assemblyScanner = assemblyScanner; this.addressProvider = addressProvider; this.conventions = conventions; }
public FormsController(IFormRepository formRepository, IUserContextProvider userContextProvider, IAddressProvider addressProvider) { _formRepository = formRepository; _userContextProvider = userContextProvider; _addressProvider = addressProvider; }
public PaymentController(IQueryDispatcher queryDispatcher, ICommandDispatcher commandDispatcher, IAddressProvider addressProvider, ICreditCardService creditCardService, IPayPalService paypalService) { this._queryDispatcher = queryDispatcher; this._commandDispatcher = commandDispatcher; this._addressProvider = addressProvider; this._creditCardService = creditCardService; this._paypalService = paypalService; }
public SimpleInvoker(IServerRouteManager serverRouteManager, IAddressProvider addressProvider, string serverName, string group = "") { this.serverRouteManager = serverRouteManager; this.addressProvider = addressProvider; this.serverName = serverName; this.group = group; this.InitChannel(); }
public ChainProvider(ITransactionProvider transactionProvider, IBlockProvider blockProvider, IAddressProvider addressProvider, IInfoAdapter infoAdapter, ILoggerFactory loggerFactory) { _transactionProvider = transactionProvider; _blockProvider = blockProvider; _addressProvider = addressProvider; _infoAdapter = infoAdapter; _log = loggerFactory.CreateLogger(GetType()); }
///<summary> ///Load the selected address checkout control and add to the address placeholder. ///</summary> private void LoadAddressControl() { plhAddressCheckout.Controls.Clear(); _addressProvider = StoreController.GetAddressProvider(StoreSettings.AddressName); AddressCheckoutControl = (AddressCheckoutControlBase)_addressProvider.GetCheckoutControl(this, ControlPath); AddressCheckoutControl.ID = "addresscheckout"; AddressCheckoutControl.ModuleConfiguration = ModuleConfiguration; AddressCheckoutControl.NoDelivery = StoreSettings.NoDelivery; AddressCheckoutControl.CheckoutMode = StoreSettings.CheckoutMode; AddressCheckoutControl.BillingAddressChanged += ctlAddressCheckout_BillingAddressChanged; AddressCheckoutControl.ShippingAddressChanged += ctlAddressCheckout_ShippingAddressChanged; plhAddressCheckout.Controls.Add(AddressCheckoutControl); }
public BlockchainProvider(ITransactionProvider transactionProvider, IBlockProvider blockProvider, IAddressProvider addressProvider, IAssetProvider assetProvider, IMetadataProvider metadataProvider, ILog log) { TransactionProvider = transactionProvider; BlockProvider = blockProvider; AddressProvider = addressProvider; AssetProvider = assetProvider; MetadataProvider = metadataProvider; Log = log; }
private void LoadAddressAdmin(string addressName) { plhAddressProvider.Controls.Clear(); //Get an instance of the provider IAddressProvider addressProvider = StoreController.GetAddressProvider(addressName); //Create an instance of the provider's admin control ProviderControlBase providerControl = addressProvider.GetAdminControl(this, ControlPath); providerControl.ID = "AddressProvider"; plhAddressProvider.Controls.Add(providerControl); }
public void TestCreateAddressProvider2() { string xml = "<remote-addresses xmlns=\"http://schemas.tangosol.com/cache\"><address-provider><class-name>Tangosol.Net.ConfigurableAddressProviderTests+LoopbackAddressProvider, Coherence.Tests</class-name></address-provider></remote-addresses>"; IXmlDocument config = XmlHelper.LoadXml(new StringReader(xml)); Assert.IsNotNull(config); ConfigurableAddressProviderFactory factory = new ConfigurableAddressProviderFactory(); factory.Config = config.GetElement("address-provider"); IAddressProvider addrProvider = factory.CreateAddressProvider(); Assert.IsNotNull(addrProvider); Assert.IsInstanceOf(typeof(LoopbackAddressProvider), addrProvider); }
string IStringSettingConvertible.ConvertBack() { XDocument doc = new XDocument(); doc.Add(new XElement("AddressBook")); foreach (var entry in Entries) { XElement entryE = new XElement("Entry"); if (string.IsNullOrWhiteSpace(entry.FirstName)) { entry.FirstName = Resources.UnknownNameSubstitute; } entryE.Add(new XAttribute("FirstName", entry.FirstName)); if (string.IsNullOrWhiteSpace(entry.LastName)) { entry.LastName = Resources.UnknownNameSubstitute; } entryE.Add(new XAttribute("LastName", entry.LastName)); foreach (EntryDataItem eo in entry.Data) { IAddressProvider provider = GetAddressProvider(eo.Identifier); if (provider == null) { continue; } try { XElement eoE = provider.ConvertBack(eo.Data); eoE.Name = eo.Identifier; eoE.Add(new XAttribute("IsEnabled", eo.IsEnabled)); entryE.Add(eoE); } catch (Exception ex) { Logger.Instance.LogFormat(LogType.Error, this, Resources.ConvertBackErrorMessage, eo.Identifier); Logger.Instance.LogException(this, ex); } } doc.Root.Add(entryE); } return(doc.ToString()); }
private void LoadAddressProvider() { plhAddressProvider.Controls.Clear(); //Get an instance of the provider IAddressProvider addressProvider = StoreController.GetAddressProvider(StoreSettings.AddressName); //Create an instance of the provider's profile control ProviderControlBase providerControl = addressProvider.GetProfileControl(this, ControlPath); providerControl.ModuleConfiguration = ModuleConfiguration; providerControl.ParentControl = this; providerControl.EditComplete += editControl_EditComplete; providerControl.ProviderError += editControl_Error; plhAddressProvider.Controls.Add(providerControl); }
internal static IAddressBook Parse(string xmlContent) { Logger.Instance.LogFormat(LogType.Debug, null, Properties.Resources.AddressBook_StartScanMessage); AddressBook addressBook = new AddressBook(); // Parse document XDocument doc = XDocument.Parse(xmlContent); foreach (XElement entryE in doc.Root.Elements("Entry")) { AddressBookEntry entry = new AddressBookEntry(); entry.Name = entryE.TryGetAttributeValue("Name", null); // Find all other custom attributes foreach (XElement customElementE in entryE.Elements()) { string providerType = customElementE.Name.LocalName; IAddressProvider provider = addressBook.GetAddressProvider(providerType); if (provider == null) { continue; } if (!IsEnabled(customElementE)) { continue; } object customObject = provider.ParseXElement(customElementE); if (customObject == null) { continue; } entry.CustomData[providerType] = customObject; } addressBook._entries.Add(entry); } Logger.Instance.LogFormat(LogType.Debug, null, Properties.Resources.AddressBook_FinishScanMessage, addressBook._entries.Count); return(addressBook); }
public void TestTcpConnectionRemoteHostAddress() { TcpInitiator initiator = GetInitiator(); IAddressProvider addressProvider = initiator.RemoteAddressProvider; Assert.IsTrue(addressProvider is ConfigurableAddressProvider); TcpConnection conn = (TcpConnection)initiator.EnsureConnection(); Assert.IsNotNull(conn); Assert.AreEqual(conn.IsOpen, true); Assert.True(addressProvider is ConfigurableAddressProvider); Assert.AreEqual(((ConfigurableAddressProvider)addressProvider).RemoteHostAddress, "127.0.0.1"); conn.Close(); Assert.AreEqual(conn.IsOpen, false); initiator.Stop(); Assert.AreEqual(initiator.IsRunning, false); }
void IStringSettingConvertible.Convert(string settingValue) { Logger.Instance.LogFormat(LogType.Debug, this, Resources.AddressBook_StartScanMessage); XDocument doc = XDocument.Parse(settingValue); foreach (XElement entryE in doc.Root.Elements("Entry")) { AddressBookEntry entry = new AddressBookEntry(); entry.FirstName = entryE.TryGetAttributeValue("FirstName", null); entry.LastName = entryE.TryGetAttributeValue("LastName", null); // Find all other custom attributes foreach (XElement customElementE in entryE.Elements()) { string providerType = customElementE.Name.LocalName; IAddressProvider provider = GetAddressProvider(providerType); if (provider == null) { continue; } object customObject = provider.Convert(customElementE); if (customObject == null) { continue; } EntryDataItem eo = new EntryDataItem(); eo.IsEnabled = IsEnabled(customElementE); eo.Identifier = providerType; eo.Data = customObject; entry.Data.Add(eo); } Entries.Add(entry); } Logger.Instance.LogFormat(LogType.Debug, this, Resources.AddressBook_FinishScanMessage, Entries.Count); }
public void TestCreateAddressProvider1() { string xml = "<remote-addresses xmlns=\"http://schemas.tangosol.com/cache\"><socket-address><address>10.0.0.120</address><port>80</port></socket-address><socket-address><address>10.0.0.121</address><port>8080</port></socket-address></remote-addresses>"; IXmlDocument config = XmlHelper.LoadXml(new StringReader(xml)); Assert.IsNotNull(config); ConfigurableAddressProviderFactory factory = new ConfigurableAddressProviderFactory(); factory.Config = config; IAddressProvider addrProvider = factory.CreateAddressProvider(); Assert.IsNotNull(addrProvider); string addrProviderString = addrProvider.ToString(); Assert.IsTrue(addrProviderString.Equals("[10.0.0.121:8080,10.0.0.120:80]") || addrProviderString.Equals("[10.0.0.120:80,10.0.0.121:8080]")); Assert.IsInstanceOf(typeof(ConfigurableAddressProvider), addrProvider); }
/// <summary> /// Get an instance of the specified address provider. /// </summary> /// <param name="providerName">Name of the provider</param> /// <returns>An instance of the specified provider</returns> public static IAddressProvider GetAddressProvider(string providerName) { string cacheKey = string.Format("Store{0}AddressProvider", providerName); IAddressProvider addressProvider = DataCache.GetCache(cacheKey) as IAddressProvider; if (addressProvider == null) { //Initialize an address provider controller ProviderController providerController = new ProviderController(StoreProviderType.Address); //Get the provider info ProviderInfo providerInfo = providerController.GetProvider(providerName); //Create an instance of the provider addressProvider = ProviderFactory.CreateProvider(providerInfo) as IAddressProvider; if (addressProvider != null) { DataCache.SetCache(cacheKey, addressProvider); } } return(addressProvider); }
private void InitClusters(IAddressProvider addressProvider) { if (addressProvider == null) throw new ArgumentNullException("addressProvider"); clusters = new Cluster[Config.KugelmatikWidth * Config.KugelmatikHeight]; for (int x = 0; x < Config.KugelmatikWidth; x++) for (int y = 0; y < Config.KugelmatikHeight; y++) clusters[y * Config.KugelmatikWidth + x] = new Cluster(this, x, y, addressProvider.GetAddress(Config, x, y)); }
public AddressProviderTool(IAddressProvider addressProvider) { searchNameList = LoadSearchNameList("Resources/PolishNameList.txt"); this.addressProvider = addressProvider; }
public Kugelmatik(Config config, ClusterConfig clusterConfig, IAddressProvider addressProvider) { this.Config = config; this.ClusterConfig = clusterConfig; InitClusters(addressProvider); }
protected void Page_Load(object sender, EventArgs e) { if (StoreSettings != null) { // Read module settings _moduleSettings = new ModuleSettings(ModuleId, TabId); // Init vars _productColumn = _moduleSettings.MainCart.ProductColumn.ToLower(); if (StoreSettings.CurrencySymbol != string.Empty) { _localFormat.CurrencySymbol = StoreSettings.CurrencySymbol; } _orderDateFormat = Localization.GetString("OrderDateFormat", LocalResourceFile); _customerNav = new CustomerNavigation(Request.QueryString); lblError.Text = ""; //Initialize the Error Label. pnlOrdersError.Visible = false; _orderController = new OrderController(); _addressProvider = StoreController.GetAddressProvider(StoreSettings.AddressName); CheckUserRoles(); if (ShowOrdersInStatus && OrderStatusID != Null.NullInteger) { plhGrid.Visible = true; plhForm.Visible = false; List <OrderInfo> orders = _orderController.GetOrders(PortalId, OrderStatusID); if (orders.Count > 0) { _orderStatusList = _orderController.GetOrderStatuses(); grdOrders.DataSource = orders; grdOrders.DataBind(); } else { lblError.Text = Localization.GetString("NoOrdersFound", LocalResourceFile); pnlOrdersError.Visible = true; pnlOrders.Visible = false; grdOrders.DataSource = null; grdOrders.DataBind(); } } else { if (_customerNav.OrderID != Null.NullInteger) { plhGrid.Visible = false; plhForm.Visible = true; if (_customerNav.OrderID != 0 && !IsPostBack) { lblEditTitle.Text = Localization.GetString("ViewDetails", LocalResourceFile); ShowOrderDetails(_customerNav.OrderID); } } else { if (_customerNav.CustomerID == Null.NullInteger) { _customerNav.CustomerID = UserId; } else if (_canManageOrders == false && _customerNav.CustomerID != UserId) { // Someone is trying to steal data pnlOrders.Visible = false; throw new Exception(Localization.GetString("Unexpected.Error", LocalSharedResourceFile)); } if (_canManageOrders || StoreSettings.AuthorizeCancel) { grdOrders.Columns[6].Visible = true; } else { grdOrders.Columns[6].Visible = false; } plhGrid.Visible = true; plhForm.Visible = false; DisplayCustomerOrders(); } } } else { pnlOrdersError.Visible = false; pnlOrders.Visible = false; } }
public AddressProviderTool(string[] nameList, IAddressProvider addressProvider) { searchNameList = LoadSearchNameList(nameList); this.addressProvider = addressProvider; }
public Purchase(ICreditCardPayment creditCardPayment, IAddressProvider addressProvider, IItemCatalog itemCatalog) { this.creditCardPayment = creditCardPayment; this.addressProvider = addressProvider; this.itemCatalog = itemCatalog; }
public AddressDataController(IAddressProvider countriesProvider, ILogger <AddressDataController> logger) { CountriesProvider = countriesProvider; Logger = logger; }
public ZipCodeLookupController(IAddressProvider addressProvider) { _addressProvider = addressProvider; }
public AddressService(Store store) { _sett = new StoreSettingsAddressTools(store.Settings); _provider = new USPSAddressProvider(_sett.AddressToolsID); }
/// <summary> /// Open and return a new Connection. /// </summary> /// <returns> /// A newly opened Connection. /// </returns> protected override Connection OpenConnection() { IAddressProvider provider = RemoteAddressProvider; Debug.Assert(provider != null); // Default value for Coherence is 0, which is an infinite timeout. // Default value for .NET IAsyncResult.WaitOne infinite timeout is -1. // So, convert the Coherence infinite value to .NET Timeout.Infinite. Int32 cMillis = (Int32)ConnectTimeout; cMillis = cMillis <= 0 ? Timeout.Infinite : cMillis; // open a new connection var addresses = new StringBuilder().Append('['); IEnumerator enmrRedirect = null; IEnumerator enmrSubport = null; IPEndPoint addrNext = null; Int32 subportNext = -1; Exception cause = null; for ( ; ;) { var connection = (TcpConnection)InstantiateConnection(); IPEndPoint addr; Int32 subport; if (enmrRedirect == null || addrNext == null) { addr = provider.NextAddress; subport = Subport; // reset redirection information enmrRedirect = null; enmrSubport = null; } else { addr = addrNext; addrNext = enmrRedirect.MoveNext() ? (IPEndPoint)enmrRedirect.Current : null; subport = subportNext; subportNext = enmrSubport.MoveNext() ? (Int32)enmrSubport.Current : -1; // update redirection information connection.IsRedirect = true; } if (addr == null) { break; } string address = NetworkUtils.ToString(addr, subport); if (RemoteAddressProvider is ConfigurableAddressProvider) { StreamProvider.RemoteAddress = ((ConfigurableAddressProvider)RemoteAddressProvider).RemoteHostAddress; } if (addresses.Length > 1) { addresses.Append(", "); } addresses.Append(address); // create and configure a new client TcpClient client = InstantiateClient(); try { if (enmrRedirect == null) { CacheFactory.Log("Connecting Socket to " + address, CacheFactory.LogLevel.Debug); } else { CacheFactory.Log("Redirecting Socket to " + address, CacheFactory.LogLevel.Debug); } IAsyncResult result = client.BeginConnect(addr.Address, addr.Port, null, null); result.AsyncWaitHandle.WaitOne(cMillis); if (!client.Connected) { CacheFactory.Log("Error connecting TcpClient to " + address + ": connection timeout", CacheFactory.LogLevel.Info); NetworkUtils.Close(client); continue; } CacheFactory.Log("Connected TcpClient to " + address, CacheFactory.LogLevel.Info); connection.Client = client; } catch (Exception e) { cause = e; CacheFactory.Log("Error connecting TcpClient to " + address + ": " + e, CacheFactory.LogLevel.Info); NetworkUtils.Close(client); // if we aren't current redirecting, or we've tried the last redirect // address, reject the last address supplied by the address provider if (enmrRedirect == null || addrNext == null) { provider.Reject(e); } continue; } // write out subport info if (subport != -1) { bool secure = connection.IsSecure; Stream stream = connection.Stream = StreamProvider.GetStream(client); if (secure) { Monitor.Enter(stream); } try { NetworkUtils.WriteSubport(stream, subport); } catch (Exception e) { CacheFactory.Log("Error connecting TcpClient to " + address + ": " + e, CacheFactory.LogLevel.Info); throw new ConnectionException(e); } finally { if (secure) { Monitor.Exit(stream); } } } try { connection.Open(); } catch (Exception e) { if (enmrRedirect == null && connection.IsRedirect) { IList list = connection.RedirectList; // create an IPEndPoint list from from the redirect list var listRedirect = new ArrayList(list.Count); var listSubport = new ArrayList(list.Count); foreach (var o in list) { var ao = (Object[])o; var s = (String)ao[0]; var port32 = new Port32((Int32)ao[1]); try { listRedirect.Add(new IPEndPoint(NetworkUtils.GetHostAddress(s, ConnectTimeout), port32.Baseport)); listSubport.Add(port32.Subport); } catch (Exception) { // invalid or unresolvable address CacheFactory.Log("Skipping unresolvable address \"" + s + "\".", CacheFactory.LogLevel.Info); } } enmrRedirect = listRedirect.GetEnumerator(); enmrSubport = listSubport.GetEnumerator(); if (enmrRedirect.MoveNext() && enmrSubport.MoveNext()) { addrNext = (IPEndPoint)enmrRedirect.Current; subportNext = (Int32)enmrSubport.Current; } else { addrNext = null; subportNext = -1; } } else { CacheFactory.Log("Error establishing a connection with " + address + ": " + e, CacheFactory.LogLevel.Info); // if we aren't current redirecting, or we've tried the last redirect // address, reject the last address supplied by the address provider if (enmrRedirect == null || addrNext == null) { provider.Reject(e); } } continue; } provider.Accept(); return(connection); } addresses.Append(']'); String message = "could not establish a connection " + "to one of the following addresses: " + addresses + "; make sure the \"remote-addresses\" configuration " + "element contains an address and port of a running " + "TcpAcceptor"; throw cause == null ? new ConnectionException(message) : new ConnectionException(message, cause); }
public ManageHostFileModuleService(IAddressProvider addressProvider) { this.addressProvider = addressProvider; }
public PersonsController(ITerritoryDb db, IAddressProvider addressProvider) { _db = db; _addresProviderTool = new AddressProviderTool(addressProvider); }
public InternalBus(string name, IBusControl busControl, IAddressProvider addressProvider) { Name = name; this.busControl = busControl; this.addressProvider = addressProvider; }
private void SendOrderStatusChangeEmail(OrderInfo order) { // Get Store Currency Symbol if (!string.IsNullOrEmpty(StoreSettings.CurrencySymbol)) { order.CurrencySymbol = StoreSettings.CurrencySymbol; } // Get Order Date Format string orderDateFormat = Localization.GetString("OrderDateFormat", LocalResourceFile); if (!string.IsNullOrEmpty(orderDateFormat)) { order.DateFormat = orderDateFormat; } // Get Customer Email IAddressProvider controler = StoreController.GetAddressProvider(StoreSettings.AddressName); IAddressInfo billingAddress = controler.GetAddress(order.BillingAddressID); string customerEmail = billingAddress.Email; // Get Admin Email string adminEmail = StoreSettings.DefaultEmailAddress; // Customer Order Email Template string customerSubjectEmail = Localization.GetString("CustomerStatusChangedEmailSubject", LocalResourceFile); string customerBodyEmail = Localization.GetString("CustomerStatusChangedEmailBody", LocalResourceFile); // Extract or remove IFPAID token Match regPaidMatch = RegPaid.Match(customerBodyEmail); if (regPaidMatch.Success) { // If Status is Paid if (order.OrderStatusID == 7) { // Replace IFPAID token by his content string paidTemplate = regPaidMatch.Groups[1].ToString(); paidTemplate = RegStripStartNewLine.Replace(paidTemplate, string.Empty); paidTemplate = RegStripEndNewLine.Replace(paidTemplate, string.Empty); customerBodyEmail = RegPaid.Replace(customerBodyEmail, paidTemplate); } else // Remove IFPAID token { customerBodyEmail = RegPaid.Replace(customerBodyEmail, string.Empty); } } // Admin Order Email Template string adminSubjectEmail = Localization.GetString("AdminStatusChangedEmailSubject", LocalResourceFile); string adminBodyEmail = Localization.GetString("AdminStatusChangedEmailBody", LocalResourceFile); // Init Email Order Replacement Tokens EmailOrderTokenReplace tkEmailOrder = new EmailOrderTokenReplace(); tkEmailOrder.StoreSettings = StoreSettings; tkEmailOrder.Order = order; // Replace tokens customerSubjectEmail = tkEmailOrder.ReplaceEmailOrderTokens(customerSubjectEmail); customerBodyEmail = tkEmailOrder.ReplaceEmailOrderTokens(customerBodyEmail); adminSubjectEmail = tkEmailOrder.ReplaceEmailOrderTokens(adminSubjectEmail); adminBodyEmail = tkEmailOrder.ReplaceEmailOrderTokens(adminBodyEmail); try { // Send Customer Email string result = Mail.SendMail(adminEmail, customerEmail, "", customerSubjectEmail, customerBodyEmail, "", HtmlUtils.IsHtml(customerBodyEmail) ? MailFormat.Html.ToString() : MailFormat.Text.ToString(), "", "", "", ""); if (!string.IsNullOrEmpty(result)) { LogSMTPError(customerEmail, result); } // Send Store Admin Email result = Mail.SendMail(adminEmail, adminEmail, "", adminSubjectEmail, adminBodyEmail, "", HtmlUtils.IsHtml(adminBodyEmail) ? MailFormat.Html.ToString() : MailFormat.Text.ToString(), "", "", "", ""); if (!string.IsNullOrEmpty(result)) { LogSMTPError(customerEmail, result); } } catch (Exception ex) { Exceptions.ProcessModuleLoadException(this, ex); } }