private static void CreateProvider() { lock (lockobjectCreateProvider) { ProviderList = new Dictionary <string, DiscountCodeInterface>(); var pluginData = new PluginData(PortalSettings.Current.PortalId); var l = pluginData.GetDiscountCodeProviders(false); foreach (var p in l) { var prov = p.Value; ObjectHandle handle = null; handle = Activator.CreateInstance(prov.GetXmlProperty("genxml/textbox/assembly"), prov.GetXmlProperty("genxml/textbox/namespaceclass")); var objProvider = (DiscountCodeInterface)handle.Unwrap(); var ctrlkey = prov.GetXmlProperty("genxml/textbox/ctrl"); var lp = 1; while (ProviderList.ContainsKey(ctrlkey)) { ctrlkey = ctrlkey + lp.ToString(""); lp += 1; } objProvider.ProviderKey = ctrlkey; if (!ProviderList.ContainsKey(ctrlkey)) { ProviderList.Add(ctrlkey, objProvider); } } } }
// dynamically create provider private static void CreateProvider() { ProviderList = new Dictionary<string, DiscountCodeInterface>(); var pluginData = new PluginData(PortalSettings.Current.PortalId); var l = pluginData.GetDiscountCodeProviders(); foreach (var p in l) { var prov = p.Value; ObjectHandle handle = null; handle = Activator.CreateInstance(prov.GetXmlProperty("genxml/textbox/assembly"), prov.GetXmlProperty("genxml/textbox/namespaceclass")); var objProvider = (DiscountCodeInterface)handle.Unwrap(); var ctrlkey = prov.GetXmlProperty("genxml/textbox/ctrl"); var lp = 1; while (ProviderList.ContainsKey(ctrlkey)) { ctrlkey = ctrlkey + lp.ToString(""); lp += 1; } objProvider.ProviderKey = ctrlkey; ProviderList.Add(ctrlkey, objProvider); } }