public override void DoWork() { try { var portallist = DnnUtils.GetAllPortals(); foreach (var portal in portallist) { // clear down NBStore temp folder var storeSettings = new StoreSettings(portal.PortalID); if (Directory.Exists(storeSettings.FolderTempMapPath)) { string[] files = Directory.GetFiles(storeSettings.FolderTempMapPath); foreach (string file in files) { FileInfo fi = new FileInfo(file); if (fi.LastAccessTime < DateTime.Now.AddHours(-3)) fi.Delete(); } // DO Scheduler Jobs var pluginData = new PluginData(portal.PortalID); var l = pluginData.GetSchedulerProviders(); 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")); if (handle != null) { var objProvider = (SchedulerInterface)handle.Unwrap(); var strMsg = objProvider.DoWork(portal.PortalID); if (strMsg != "") { this.ScheduleHistoryItem.AddLogNote(strMsg); } } } } } this.ScheduleHistoryItem.Succeeded = true; } catch (Exception Ex) { //--intimate the schedule mechanism to write log note in schedule history this.ScheduleHistoryItem.Succeeded = false; this.ScheduleHistoryItem.AddLogNote("NBS Service Start. Failed. " + Ex.ToString()); this.Errored(ref Ex); } }
protected void CtrlItemCommand(object source, RepeaterCommandEventArgs e) { var cArg = e.CommandArgument.ToString(); var param = new string[3]; var pluginData = new PluginData(PortalId); switch (e.CommandName.ToLower()) { case "entrydetail": param[0] = "eid=" + cArg; Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true); break; case "move": MoveRecord(cArg); Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true); break; case "save": if (Utils.IsNumeric(cArg)) { pluginData.UpdatePlugin(rpData,Convert.ToInt32(cArg)); pluginData.Save(); } Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true); break; case "add": pluginData.AddNewPlugin(); pluginData.Save(); param[0] = ""; Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true); break; case "delete": // NOTE: The delete button cannot work at portal level. Each plugin must be entered at system level, therefore deleting at portal level has no effect // the plugin is re-entered back into the portal from the system level. (This is CORRECT, pluging needs to be uninstalled to be removed, at portal level we simply hide them) if (Utils.IsNumeric(cArg)) { pluginData.RemovePlugin(Convert.ToInt32(cArg)); pluginData.Save(); } param[0] = ""; Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true); break; case "resetportal": pluginData.RemovePortalLevel(); param[0] = ""; Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true); break; case "reload": param[0] = ""; Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true); break; case "return": param[0] = ""; Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true); break; } }
/// <summary> /// /// </summary> /// <param name="portalfinfo"></param> /// <returns></returns> public override string DoWork() { try { var objCtrl = new NBrightBuyController(); // the sceduler runs at host level, we therefore need to loop through ALL portals to process data at a portal level. var portalList = NBrightDNN.DnnUtils.GetAllPortals(); foreach (var portal in portalList) { // check if we have NBS in this portal by looking for default settings. var nbssetting = objCtrl.GetByGuidKey(portal.PortalID, -1, "SETTINGS", "NBrightBuySettings"); if (nbssetting != null) { var storeSettings = new StoreSettings(portal.PortalID); var pluginData = new PluginData(portal.PortalID); // get plugin data to see if this scheduler is active on this portal var plugin = pluginData.GetPluginByCtrl("dnnsearchindex"); if (plugin != null && plugin.GetXmlPropertyBool("genxml/checkbox/active")) { // The NBS scheduler is normally set to run hourly, therefore if we only want a process to run daily we need the logic this function. // To to this we keep a last run flag on the sceduler settings var setting = objCtrl.GetByGuidKey(portal.PortalID, -1, "DNNIDXSCHEDULER", "DNNIDXSCHEDULER"); if (setting == null) { setting = new NBrightInfo(true); setting.ItemID = -1; setting.PortalId = portal.PortalID; setting.TypeCode = "DNNIDXSCHEDULER"; setting.GUIDKey = "DNNIDXSCHEDULER"; setting.ModuleId = -1; setting.XMLData = "<genxml></genxml>"; } var lastrun = setting.GetXmlPropertyRaw("genxml/lastrun"); var lastrundate = DateTime.Now.AddYears(-99); if (Utils.IsDate(lastrun)) lastrundate = Convert.ToDateTime(lastrun); var rtnmsg = DoProductIdx(portal, lastrundate, storeSettings.DebugMode); setting.SetXmlProperty("genxml/lastrun", DateTime.Now.ToString("s"), TypeCode.DateTime); objCtrl.Update(setting); if (rtnmsg != "") return rtnmsg; } } } return " - NBS-DNNIDX scheduler OK "; } catch (Exception ex) { return " - NBS-DNNIDX scheduler FAIL: " + ex.ToString() + " : "; } }
private void ResetPortalMenu() { var pass = GenXmlFunctions.GetField(rpData, "txtclearpass"); if (pass == StoreSettings.Current.Get("adminpin") && pass != "") { DataCache.ClearCache(); var pi = new PluginData(PortalId); pi.RemovePortalLevel(); NBrightBuyUtils.SetNotfiyMessage(ModuleId, "completed", NotifyCode.ok); } else { NBrightBuyUtils.SetNotfiyMessage(ModuleId, "nopin", NotifyCode.fail); } }
private String GetShippingProviderTemplates(HttpContext context) { var ajaxInfo = GetAjaxInfo(context); var activeprovider = ajaxInfo.GetXmlProperty("genxml/hidden/shippingprovider"); var currentcart = new CartData(PortalSettings.Current.PortalId); var shipoption = currentcart.GetShippingOption(); // we don't want to overwrite the selected shipping option. currentcart.AddExtraInfo(ajaxInfo); currentcart.SetShippingOption(shipoption); currentcart.PurchaseInfo.SetXmlProperty("genxml/currentcartstage", "cartsummary"); // (Legacy) we need to set this so the cart calcs shipping currentcart.Save(); if (activeprovider == "") activeprovider = currentcart.PurchaseInfo.GetXmlProperty("genxml/extrainfo/genxml/radiobuttonlist/shippingprovider"); var strRtn = ""; var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetShippingProviders(); if (provList != null && provList.Count > 0) { if (activeprovider == "") activeprovider = provList.First().Key; foreach (var d in provList) { var p = d.Value; var shippingkey = p.GetXmlProperty("genxml/textbox/ctrl"); var shipprov = ShippingInterface.Instance(shippingkey); if (shipprov != null) { if (activeprovider == d.Key) { var razorTempl = shipprov.GetTemplate(currentcart.PurchaseInfo); var objList = new List<NBrightInfo>(); objList.Add(currentcart.PurchaseInfo); if (razorTempl.StartsWith("@")) { strRtn += NBrightBuyUtils.RazorRender(objList, razorTempl, shippingkey + "shippingtemplate", StoreSettings.Current.DebugMode); } else { strRtn += GenXmlFunctions.RenderRepeater(objList[0], razorTempl, "", "XMLData", "", StoreSettings.Current.Settings(), null); } } } } } return strRtn; }
public static NBrightInfo ProcessEventProvider(EventActions eventaction, NBrightInfo nbrightInfo, String eventinfo) { var rtnInfo = nbrightInfo; var pluginData = new PluginData(nbrightInfo.PortalId); var provList = pluginData.GetEventsProviders(); foreach (var d in provList) { var prov = d.Value; ObjectHandle handle = null; var cachekey = prov.PortalId + "*" + prov.GetXmlProperty("genxml/textbox/assembly") + "*" + prov.GetXmlProperty("genxml/textbox/namespaceclass"); handle = (ObjectHandle)Utils.GetCache(cachekey); if (handle == null) handle = Activator.CreateInstance(prov.GetXmlProperty("genxml/textbox/assembly"), prov.GetXmlProperty("genxml/textbox/namespaceclass")); if (handle != null) { var eventprov = (EventInterface) handle.Unwrap(); if (eventprov != null) { if (eventaction == EventActions.ValidateCartBefore) { rtnInfo = eventprov.ValidateCartBefore(nbrightInfo); } else if (eventaction == EventActions.ValidateCartAfter) { rtnInfo = eventprov.ValidateCartAfter(nbrightInfo); } else if (eventaction == EventActions.ValidateCartItemBefore) { rtnInfo = eventprov.ValidateCartItemBefore(nbrightInfo); } else if (eventaction == EventActions.ValidateCartItemAfter) { rtnInfo = eventprov.ValidateCartItemAfter(nbrightInfo); } else if (eventaction == EventActions.AfterCartSave) { rtnInfo = eventprov.AfterCartSave(nbrightInfo); } else if (eventaction == EventActions.AfterCategorySave) { rtnInfo = eventprov.AfterCategorySave(nbrightInfo); } else if (eventaction == EventActions.AfterProductSave) { rtnInfo = eventprov.AfterProductSave(nbrightInfo); } else if (eventaction == EventActions.AfterSavePurchaseData) { rtnInfo = eventprov.AfterSavePurchaseData(nbrightInfo); } else if (eventaction == EventActions.BeforeOrderStatusChange) { rtnInfo = eventprov.BeforeOrderStatusChange(nbrightInfo); } else if (eventaction == EventActions.AfterOrderStatusChange) { rtnInfo = eventprov.AfterOrderStatusChange(nbrightInfo); } else if (eventaction == EventActions.BeforePaymentOK) { rtnInfo = eventprov.BeforePaymentOK(nbrightInfo); } else if (eventaction == EventActions.AfterPaymentOK) { rtnInfo = eventprov.AfterPaymentOK(nbrightInfo); } else if (eventaction == EventActions.BeforePaymentFail) { rtnInfo = eventprov.BeforePaymentFail(nbrightInfo); } else if (eventaction == EventActions.AfterPaymentFail) { rtnInfo = eventprov.AfterPaymentFail(nbrightInfo); } else if (eventaction == EventActions.BeforeSendEmail) { rtnInfo = eventprov.BeforeSendEmail(nbrightInfo,eventinfo); } else if (eventaction == EventActions.AfterSendEmail) { rtnInfo = eventprov.AfterSendEmail(nbrightInfo,eventinfo); } } } } return rtnInfo; }
private void DoExport() { var strXml = new StringBuilder("<root>"); var objCtrlUser = new UserController(); if (GenXmlFunctions.GetField(rpData,"exportproducts") == "True") { // export any entitytype provider data // This is data created by plugins into the NBS data tables. var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetEntityTypeProviders(); foreach (var prov in provList) { var entityprov = EntityTypeInterface.Instance(prov.Key); if (entityprov != null) { var provl = ModCtrl.GetList(PortalId, -1, entityprov.GetEntityTypeCode()); foreach (var i in provl) { strXml.Append(i.ToXmlItem()); } provl = ModCtrl.GetList(PortalId, -1, entityprov.GetEntityTypeCodeLang()); foreach (var i in provl) { strXml.Append(i.ToXmlItem()); } } } var l = ModCtrl.GetList(PortalId, -1, "PRD"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } l = ModCtrl.GetList(PortalId, -1, "PRDLANG"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } l = ModCtrl.GetList(PortalId, -1, "PRDXREF"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } l = ModCtrl.GetList(PortalId, -1, "USERPRDXREF"); foreach (var i in l) { var u = objCtrlUser.GetUser(i.PortalId, i.UserId); if (u != null) { i.TextData = u.Username; strXml.Append(i.ToXmlItem()); } } } if (GenXmlFunctions.GetField(rpData, "exportcategories") == "True") { var l = ModCtrl.GetList(PortalId, -1, "CATEGORY"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } l = ModCtrl.GetList(PortalId, -1, "CATEGORYLANG"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } } if (GenXmlFunctions.GetField(rpData, "exportcategories") == "True" && GenXmlFunctions.GetField(rpData, "exportproducts") == "True") { var l = ModCtrl.GetList(PortalId, -1, "CATCASCADE"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } l = ModCtrl.GetList(PortalId, -1, "CATXREF"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } } if (GenXmlFunctions.GetField(rpData, "exportproperties") == "True") { var l = ModCtrl.GetList(PortalId, -1, "GROUP"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } l = ModCtrl.GetList(PortalId, -1, "GROUPLANG"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } } if (GenXmlFunctions.GetField(rpData, "exportsettings") == "True") { var l = ModCtrl.GetList(PortalId, 0, "SETTINGS"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } } if (GenXmlFunctions.GetField(rpData, "exportorders") == "True") { var l = ModCtrl.GetList(PortalId, -1, "ORDER"); foreach (var i in l) { strXml.Append(i.ToXmlItem()); } } strXml.Append("</root>"); var doc = new XmlDocument(); doc.LoadXml(strXml.ToString()); doc.Save(StoreSettings.Current.FolderUploadsMapPath + "\\export.xml"); Utils.ForceDocDownload(StoreSettings.Current.FolderUploadsMapPath + "\\export.xml", PortalSettings.PortalAlias.HTTPAlias + "_export.xml", Response); }
private void DoExportDocs() { var fileMapPathList = new List<string>(); var l = ModCtrl.GetList(PortalId, -1, "PRD"); foreach (var i in l) { var nodlist = i.XMLDoc.SelectNodes("genxml/docs/*"); if (nodlist != null) { foreach (XmlNode nod in nodlist) { var fname = nod.SelectSingleNode("./hidden/docpath"); if (fname != null && fname.InnerText != "") fileMapPathList.Add(fname.InnerText); } } } // export any entitytype provider data // This is data created by plugins into the NBS data tables. var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetEntityTypeProviders(); foreach (var prov in provList) { var entityprov = EntityTypeInterface.Instance(prov.Key); if (entityprov != null) { var provl = ModCtrl.GetList(PortalId, -1, entityprov.GetEntityTypeCode()); foreach (var i in provl) { var nodlist = i.XMLDoc.SelectNodes("genxml/docs/*"); if (nodlist != null) { foreach (XmlNode nod in nodlist) { var fname = nod.SelectSingleNode("./hidden/docpath"); if (fname != null && fname.InnerText != "") fileMapPathList.Add(fname.InnerText); } } } } } DnnUtils.Zip(StoreSettings.Current.FolderUploadsMapPath + "\\exportdocs.zip", fileMapPathList); Utils.ForceDocDownload(StoreSettings.Current.FolderUploadsMapPath + "\\exportdocs.zip", PortalSettings.PortalAlias.HTTPAlias + "_exportdocs.zip", Response); }
private String GetControlPath(String ctrl) { var pluginData = new PluginData(PortalId); var nod = pluginData.Info.XMLDoc.SelectSingleNode("genxml/plugin/genxml[textbox/ctrl='" + ctrl + "']/textbox/path"); if (nod != null) { return nod.InnerText; } return ""; }
private void ImportRecord(XmlDocument xmlFile, String typeCode, Boolean updaterecordsbyref = true) { var nodList = xmlFile.SelectNodes("root/item[./typecode='" + typeCode + "']"); if (nodList != null) { foreach (XmlNode nod in nodList) { var nbi = new NBrightInfo(); nbi.FromXmlItem(nod.OuterXml); var olditemid = nbi.ItemID; // check to see if we have a new record or updating a existing one, use the ref field to find out. nbi.ItemID = -1; nbi.PortalId = PortalId; if (typeCode == "PRD" && updaterecordsbyref) { var itemref = nbi.GetXmlProperty("genxml/textbox/txtproductref"); if (itemref != "") { var l = ModCtrl.GetList(PortalId, -1, "PRD", " and NB3.ProductRef = '" + itemref.Replace("'", "''") + "' "); if (l.Count > 0) nbi.ItemID = l[0].ItemID; } } if (typeCode == "PRDLANG" && updaterecordsbyref) { if (_recordXref.ContainsKey(nbi.ParentItemId)) { var l = ModCtrl.GetList(PortalId, -1, "PRDLANG", " and NB1.parentitemid = '" + _recordXref[nbi.ParentItemId].ToString("") + "' and NB1.Lang = '" + nbi.Lang + "'"); if (l.Count > 0) nbi.ItemID = l[0].ItemID; nbi.ParentItemId = _recordXref[nbi.ParentItemId]; } } // import any entitytype provider data // This is data created by plugins into the NBS data tables. var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetEntityTypeProviders(); foreach (var prov in provList) { var entityprov = EntityTypeInterface.Instance(prov.Key); if (entityprov != null) { if (typeCode == entityprov.GetEntityTypeCode() && updaterecordsbyref) { var itemref = nbi.GetXmlProperty("genxml/textbox/txtproductref"); if (itemref != "") { var l = ModCtrl.GetList(PortalId, -1, entityprov.GetEntityTypeCode(), " and NB3.ProductRef = '" + itemref.Replace("'", "''") + "' "); if (l.Count > 0) nbi.ItemID = l[0].ItemID; } } if (typeCode == entityprov.GetEntityTypeCodeLang() && updaterecordsbyref) { if (_recordXref.ContainsKey(nbi.ParentItemId)) { var l = ModCtrl.GetList(PortalId, -1, entityprov.GetEntityTypeCodeLang(), " and NB1.parentitemid = '" + _recordXref[nbi.ParentItemId].ToString("") + "' and NB1.Lang = '" + nbi.Lang + "'"); if (l.Count > 0) nbi.ItemID = l[0].ItemID; nbi.ParentItemId = _recordXref[nbi.ParentItemId]; } } } } if (typeCode == "PRDXREF" && updaterecordsbyref) { if (_recordXref.ContainsKey(nbi.XrefItemId)) nbi.XrefItemId = _recordXref[nbi.XrefItemId]; if (_recordXref.ContainsKey(nbi.ParentItemId)) nbi.ParentItemId = _recordXref[nbi.ParentItemId]; } if (typeCode == "USERPRDXREF" && updaterecordsbyref) { var u = UserController.GetUserByName(PortalId, nbi.TextData); if (u != null) { if (_recordXref.ContainsKey(nbi.ParentItemId)) nbi.ParentItemId = _recordXref[nbi.ParentItemId]; if (_recordXref.ContainsKey(nbi.XrefItemId)) nbi.UserId = u.UserID; } } if (typeCode == "CATEGORY" && updaterecordsbyref) { var itemref = nbi.GetXmlProperty("genxml/textbox/txtcategoryref"); if (itemref != "") { var l = ModCtrl.GetList(PortalId, -1, "CATEGORY", " and [XMLData].value('(genxml/textbox/txtcategoryref)[1]','nvarchar(max)') = '" + itemref.Replace("'", "''") + "' "); if (l.Count > 0) nbi.ItemID = l[0].ItemID; } } if (typeCode == "CATEGORYLANG" && updaterecordsbyref) { if (_recordXref.ContainsKey(nbi.ParentItemId)) { var l = ModCtrl.GetList(PortalId, -1, "CATEGORYLANG", " and NB1.parentitemid = '" + _recordXref[nbi.ParentItemId].ToString("") + "' and NB1.Lang = '" + nbi.Lang + "'"); if (l.Count > 0) nbi.ItemID = l[0].ItemID; nbi.ParentItemId = _recordXref[nbi.ParentItemId]; } } if (typeCode == "GROUP" && updaterecordsbyref) { var itemref = nbi.GetXmlProperty("genxml/textbox/groupref"); if (itemref != "") { var l = ModCtrl.GetList(PortalId, -1, "GROUP", " and [XMLData].value('(genxml/textbox/groupref)[1]','nvarchar(max)') = '" + itemref.Replace("'", "''") + "' "); if (l.Count > 0) nbi.ItemID = l[0].ItemID; } } if (typeCode == "GROUPLANG" && updaterecordsbyref) { if (_recordXref.ContainsKey(nbi.ParentItemId)) { var l = ModCtrl.GetList(PortalId, -1, "GROUPLANG", " and NB1.parentitemid = '" + _recordXref[nbi.ParentItemId].ToString("") + "' and NB1.Lang = '" + nbi.Lang + "'"); if (l.Count > 0) nbi.ItemID = l[0].ItemID; nbi.ParentItemId = _recordXref[nbi.ParentItemId]; } } if (typeCode == "SETTINGS") // the setting exported are only the portal settings, not module. So always update and don;t create new. { var l = ModCtrl.GetList(PortalId, 0, "SETTINGS", " and NB1.GUIDKey = 'NBrightBuySettings' "); if (l.Count > 0) nbi.ItemID = l[0].ItemID; } //NOTE: if ORDERS are imported, we expect those to ALWAYS be new records, we don't want to delete any validate orders in this import. // NOTE: we expect the records to be done in typecode order so we know parent and xref itemids. var newitemid = ModCtrl.Update(nbi); if (newitemid > 0) _recordXref.Add(olditemid, newitemid); if (typeCode == "PRD") _productList.Add(newitemid, typeCode); // Add any provider data types foreach (var prov in provList) { var entityprov = EntityTypeInterface.Instance(prov.Key); if (entityprov != null) { if (typeCode == entityprov.GetEntityTypeCode()) _productList.Add(newitemid, typeCode); } } } } }
private void PageLoad() { #region "Data Repeater" if (UserId > 0) // only logged in users can see data on this module. { if (_displayentrypage) { DisplayDataEntryRepeater(_entryid); } else { var pluginData = new PluginData(PortalId); rpData.DataSource = pluginData.GetPluginList(); rpData.DataBind(); // display header (Do header after the data return so the productcount works) base.DoDetail(rpDataH); // display footer base.DoDetail(rpDataF); } } #endregion }
protected override void OnInit(EventArgs e) { ModCtrl = new NBrightBuyController(); DebugMode = StoreSettings.Current.DebugMode; base.OnInit(e); #region "Get all Settings for module" //get Model Level Settings ModSettings = new ModSettings(ModuleId, Settings); ModuleKey = ModSettings.Get("modulekey"); #endregion if (EnablePaging) { CtrlPaging = new NBrightCore.controls.PagingCtrl(); this.Controls.Add(CtrlPaging); CtrlPaging.PageChanged += new RepeaterCommandEventHandler(PagingClick); } //add template provider to NBright Templating NBrightCore.providers.GenXProviderManager.AddProvider("NBrightBuy,Nevoweb.DNN.NBrightBuy.render.GenXmlTemplateExt"); // search for any other NBright Tenmplating providers that might have been added. var pluginData = new PluginData(PortalSettings.Current.PortalId); var l = pluginData.GetTemplateExtProviders(); foreach (var p in l) { var prov = p.Value; NBrightCore.providers.GenXProviderManager.AddProvider(prov.GetXmlProperty("genxml/textbox/assembly") + "," + prov.GetXmlProperty("genxml/textbox/namespaceclass")); } }
private void DisplayDataEntryRepeater(String entryId) { if (Utils.IsNumeric(entryId)) { var pluginData = new PluginData(PortalId); var pData = pluginData.GetPlugin(Convert.ToInt32(entryId)); //render the detail page base.DoDetail(rpData, pData); base.DoDetail(rpDataH, pData); base.DoDetail(rpDataF, pData); } }
private void MoveRecord(String movectrl) { var selectedctrl = GenXmlFunctions.GetField(rpDataH, "selectedctrl"); var pluginData = new PluginData(PortalId); pluginData.MovePlugin(selectedctrl, movectrl); }
protected override void OnInit(EventArgs e) { base.OnInit(e); try { #region "set templates based on entry id (eid) from url" _entryid = Utils.RequestQueryStringParam(Context, "eid"); var pluginTemplate = ""; if (Utils.IsNumeric(_entryid)) { _displayentrypage = true; // check if we have bespoke setting that need adding to the template var pluginData = new PluginData(PortalId); var pData = pluginData.GetPlugin(Convert.ToInt32(_entryid)); var pluginTemplatePath = pData.GetXmlProperty("genxml/hidden/plugintemplate"); if (pluginTemplatePath != "") pluginTemplate = Utils.ReadFile(MapPath(pluginTemplatePath)); } else { // check for new plugins var pi = new PluginData(PortalId, true); pi.UpdateSystemPlugins(); } #endregion #region "load templates" var t1 = "pluginsheader.html"; var t2 = "pluginsbody.html"; var t3 = "pluginsfooter.html"; if (Utils.IsNumeric(_entryid)) { t1 = "pluginsdetailheader.html"; t2 = "pluginsdetail.html"; t3 = "pluginsdetailfooter.html"; } // Get Display Header var rpDataHTempl = ModCtrl.GetTemplateData(ModSettings, t1, Utils.GetCurrentCulture(), DebugMode); rpDataH.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpDataHTempl, ModSettings.Settings(), PortalSettings.HomeDirectory); // Get Display Body var rpDataTempl = ModCtrl.GetTemplateData(ModSettings, t2, Utils.GetCurrentCulture(), DebugMode); rpDataTempl = rpDataTempl.Replace("[Template:PluginTemplate]", pluginTemplate); // replace special plugin settings rpData.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpDataTempl, ModSettings.Settings(), PortalSettings.HomeDirectory); // Get Display Footer var rpDataFTempl = ModCtrl.GetTemplateData(ModSettings, t3, Utils.GetCurrentCulture(), DebugMode); rpDataF.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpDataFTempl, ModSettings.Settings(), PortalSettings.HomeDirectory); #endregion } catch (Exception exc) { //display the error on the template (don't want to log it here, prefer to deal with errors directly.) var l = new Literal(); l.Text = exc.ToString(); phData.Controls.Add(l); } }
protected override void OnInit(EventArgs e) { base.OnInit(e); try { // check for new plugins var pi = new PluginData(PortalId, true); pi.UpdateSystemPlugins(); pi.CheckforNewSystemConfig(); #region "load templates" var t1 = "backoffice.html"; // Get Display Body var dataTempl = ModCtrl.GetTemplateData(ModSettings, t1, Utils.GetCurrentCulture(), DebugMode); // insert page header text var headerTempl = NBrightBuyUtils.GetGenXmlTemplate(dataTempl, ModSettings.Settings(), PortalSettings.HomeDirectory); NBrightBuyUtils.IncludePageHeaders(ModCtrl, ModuleId, Page, headerTempl, ModSettings.Settings(), null, DebugMode); // remove any DNN modules from the BO page var tabInfo = PortalSettings.Current.ActiveTab; var modCount = tabInfo.Modules.Count; for (int i = 0; i < modCount; i++) { tabInfo.Modules.RemoveAt(0); } var aryTempl = Utils.ParseTemplateText(dataTempl); foreach (var s in aryTempl) { var htmlDecode = System.Web.HttpUtility.HtmlDecode(s); if (htmlDecode != null) { switch (htmlDecode.ToLower()) { case "<tag:menu>": var c1 = LoadControl(ControlPath + "/Menu.ascx"); phData.Controls.Add(c1); break; case "<tag:container>": var c2 = LoadControl(ControlPath + "/Container.ascx"); phData.Controls.Add(c2); break; default: var lc = new Literal {Text = s}; phData.Controls.Add(lc); break; } } } #endregion } catch (Exception exc) { //display the error on the template (don;t want to log it here, prefer to deal with errors directly.) var l = new Literal(); l.Text = exc.ToString(); phData.Controls.Add(l); } }
protected override void OnLoad(EventArgs e) { try { base.OnLoad(e); if (Page.IsPostBack == false) { #region "Check for plugins" var pluginData = new PluginData(PortalId, true); pluginData.UpdateSystemPlugins(); _systemPlugins = pluginData.GetPluginList(); pluginData = new PluginData(PortalId); var portalPlugins = pluginData.GetPluginList(); Boolean upd = false; foreach (var p in _systemPlugins) { var ctrllist = from i in portalPlugins where i.GetXmlProperty("genxml/textbox/ctrl") == p.GetXmlProperty("genxml/textbox/ctrl") select i; var nBrightInfos = ctrllist as IList<NBrightInfo> ?? ctrllist.ToList(); if (!nBrightInfos.Any()) { pluginData.AddPlugin(p); upd = true; } } if (upd) pluginData.Save(); #endregion PageLoad(); } } catch (Exception exc) //Module failed to load { //display the error on the template (don;t want to log it here, prefer to deal with errors directly.) var l = new Literal(); l.Text = exc.ToString(); phData.Controls.Add(l); } }
private String GetShippingProviderTemplates() { var strRtn = ""; var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetShippingProviders(); foreach (var d in provList) { var p = d.Value; var shippingkey = p.GetXmlProperty("genxml/textbox/ctrl"); var shipprov = ShippingInterface.Instance(shippingkey); if (shipprov != null) { var activeprovider = _cartInfo.GetInfo().GetXmlProperty("genxml/extrainfo/genxml/radiobuttonlist/shippingprovider"); // no shipping provider selected, so get the default one. if (activeprovider == "") activeprovider = provList.First().Key; if (activeprovider == d.Key) strRtn += shipprov.GetTemplate(_cartInfo.PurchaseInfo); } } return strRtn; }
private void ShippingProviderDataBind(object sender, EventArgs e) { var rbl = (RadioButtonList)sender; var container = (IDataItemContainer)rbl.NamingContainer; try { rbl.Visible = visibleStatus.DefaultIfEmpty(true).First(); if (rbl.Visible) { var strXML = Convert.ToString(DataBinder.Eval(container.DataItem, "XMLData")); var nbInfo = new NBrightInfo(); nbInfo.XMLData = strXML; var selectval = nbInfo.GetXmlProperty("genxml/radiobuttonlist/shippingprovider"); // get country code, to CheckBox if provider is valid. var cartData = new CartData(PortalSettings.Current.PortalId); var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetShippingProviders(); foreach (var d in provList) { var isValid = true; var shipprov = ShippingInterface.Instance(d.Key); if (shipprov != null) isValid = shipprov.IsValid(cartData.PurchaseInfo); var p = d.Value; if (isValid) { var li = new ListItem(); li.Text = p.GetXmlProperty("genxml/textbox/name"); li.Value = p.GetXmlProperty("genxml/textbox/ctrl"); if (li.Value == selectval) li.Selected = true; rbl.Items.Add(li); } } if (rbl.SelectedValue == "" && rbl.Items.Count > 0) rbl.SelectedIndex = 0; } } catch (Exception) { rbl.Visible = false; } }
public void ValidateCart() { PurchaseInfo = NBrightBuyUtils.ProcessEventProvider(EventActions.ValidateCartBefore, PurchaseInfo); var itemList = GetCartItemList(); Double subtotalcost = 0; Double subtotaldealercost = 0; Double totaldealerbonus = 0; Double totaldiscount = 0; Double totaldealerdiscount = 0; Double totalqty = 0; Double totalweight = 0; Double totalunitcost = 0; var strXml = "<items>"; foreach (var info in itemList) { // check product still exists and remove if deleted, altered or disabled. var cartItem = ValidateCartItem(PortalId, UserId, info); if (cartItem != null) { strXml += cartItem.XMLData; totalunitcost += info.GetXmlPropertyDouble("genxml/unitcost"); subtotalcost += info.GetXmlPropertyDouble("genxml/totalcost"); subtotaldealercost += info.GetXmlPropertyDouble("genxml/totaldealercost"); totaldealerbonus += info.GetXmlPropertyDouble("genxml/totaldealerbonus"); totaldiscount += info.GetXmlPropertyDouble("genxml/totaldiscount"); totaldealerdiscount += info.GetXmlPropertyDouble("genxml/totaldealerdiscount"); totalqty += info.GetXmlPropertyDouble("genxml/qty"); totalweight += info.GetXmlPropertyDouble("genxml/totalweight"); } } strXml += "</items>"; PurchaseInfo.RemoveXmlNode("genxml/items"); PurchaseInfo.AddXmlNode(strXml, "items", "genxml"); PopulateItemList(); // calculate totals PurchaseInfo.SetXmlPropertyDouble("genxml/totalqty", totalqty); PurchaseInfo.SetXmlPropertyDouble("genxml/totalweight", totalweight); PurchaseInfo.SetXmlPropertyDouble("genxml/totalunitcost", totalunitcost); PurchaseInfo.SetXmlPropertyDouble("genxml/subtotalcost", subtotalcost); PurchaseInfo.SetXmlPropertyDouble("genxml/subtotaldealercost", subtotaldealercost); PurchaseInfo.SetXmlPropertyDouble("genxml/appliedsubtotal", AppliedCost(PortalId, UserId, subtotalcost, subtotaldealercost)); PurchaseInfo.SetXmlPropertyDouble("genxml/totaldiscount", totaldiscount); PurchaseInfo.SetXmlPropertyDouble("genxml/totaldealerdiscount", totaldealerdiscount); var applieddiscount = AppliedCost(PortalId, UserId, totaldiscount, totaldealerdiscount); PurchaseInfo.SetXmlPropertyDouble("genxml/applieddiscount", applieddiscount); PurchaseInfo.SetXmlPropertyDouble("genxml/totaldealerbonus", totaldealerbonus); //add shipping Double shippingcost = 0; Double shippingdealercost = 0; var shippingkey = PurchaseInfo.GetXmlProperty("genxml/extrainfo/genxml/radiobuttonlist/shippingprovider"); var currentcartstage = PurchaseInfo.GetXmlProperty("genxml/currentcartstage"); if (currentcartstage == "cartaddress" || currentcartstage == "cartsummary") // can only calc shipping on this stage. { ShippingInterface shipprov = null; if (shippingkey == "") { var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetShippingProviders(); foreach (var d in provList) { var isValid = true; var shipprov1 = ShippingInterface.Instance(d.Key); if (shipprov1 != null) isValid = shipprov1.IsValid(PurchaseInfo); if (isValid) { shipprov = shipprov1; if (shipprov != null) PurchaseInfo.SetXmlProperty("genxml/extrainfo/genxml/radiobuttonlist/shippingprovider", shipprov.Shippingkey); break; } } } else shipprov = ShippingInterface.Instance(shippingkey); if (shipprov != null && !shipprov.IsValid(PurchaseInfo)) // Check we have a valid one!! if not the get another!! { var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetShippingProviders(); foreach (var d in provList) { var isValid = true; var shipprov1 = ShippingInterface.Instance(d.Key); if (shipprov1 != null) isValid = shipprov1.IsValid(PurchaseInfo); if (isValid) { shipprov = shipprov1; if (shipprov != null) PurchaseInfo.SetXmlProperty("genxml/extrainfo/genxml/radiobuttonlist/shippingprovider", shipprov.Shippingkey); break; } } } if (shipprov != null) { PurchaseInfo = shipprov.CalculateShipping(PurchaseInfo); shippingcost = PurchaseInfo.GetXmlPropertyDouble("genxml/shippingcost"); shippingdealercost = PurchaseInfo.GetXmlPropertyDouble("genxml/shippingdealercost"); } PurchaseInfo.SetXmlPropertyDouble("genxml/appliedshipping", AppliedCost(PortalId, UserId, shippingcost, shippingdealercost)); } else { // clear the provider if not cartshipping stage PurchaseInfo.SetXmlProperty("genxml/extrainfo/genxml/radiobuttonlist/shippingprovider", ""); } //add tax Double appliedtax = 0; var taxproviderkey = PurchaseInfo.GetXmlProperty("genxml/extrainfo/genxml/hidden/taxproviderkey"); var taxprov = TaxInterface.Instance(taxproviderkey); if (taxprov != null) { PurchaseInfo = taxprov.Calculate(PurchaseInfo); appliedtax = PurchaseInfo.GetXmlPropertyDouble("genxml/appliedtax"); } //cart full total var dealertotal = (subtotaldealercost + shippingdealercost + appliedtax); var total = (subtotalcost + shippingcost + appliedtax); PurchaseInfo.SetXmlPropertyDouble("genxml/dealertotal", dealertotal); PurchaseInfo.SetXmlPropertyDouble("genxml/total", total); PurchaseInfo.SetXmlPropertyDouble("genxml/appliedtotal", AppliedCost(PortalId, UserId, total, dealertotal)); if (PurchaseInfo.GetXmlProperty("genxml/clientmode") == "True") { // user not editor, so stop edit mode. if (!UserController.GetCurrentUserInfo().IsInRole("Administrators") && !UserController.GetCurrentUserInfo().IsInRole(StoreSettings.ManagerRole) && !UserController.GetCurrentUserInfo().IsInRole(StoreSettings.EditorRole)) PurchaseInfo.SetXmlProperty("genxml/clientmode", "False"); } PurchaseInfo = NBrightBuyUtils.ProcessEventProvider(EventActions.ValidateCartAfter, PurchaseInfo); SavePurchaseData(); }
private String GetProductListData(Dictionary<String, String> settings,bool paging = true) { var strOut = ""; if (!settings.ContainsKey("header")) settings.Add("header", ""); if (!settings.ContainsKey("body")) settings.Add("body", ""); if (!settings.ContainsKey("footer")) settings.Add("footer", ""); if (!settings.ContainsKey("filter")) settings.Add("filter", ""); if (!settings.ContainsKey("orderby")) settings.Add("orderby", ""); if (!settings.ContainsKey("returnlimit")) settings.Add("returnlimit", "0"); if (!settings.ContainsKey("pagenumber")) settings.Add("pagenumber", "0"); if (!settings.ContainsKey("pagesize")) settings.Add("pagesize", "0"); if (!settings.ContainsKey("searchtext")) settings.Add("searchtext", ""); if (!settings.ContainsKey("searchcategory")) settings.Add("searchcategory", ""); if (!settings.ContainsKey("cascade")) settings.Add("cascade", "False"); // select a specific entity data type for the product (used by plugins) if (!settings.ContainsKey("entitytypecode")) settings.Add("entitytypecode", "PRD"); if (!settings.ContainsKey("entitytypecodelang")) settings.Add("entitytypecodelang", "PRDLANG"); var entitytypecodelang = settings["entitytypecodelang"]; var entitytypecode = settings["entitytypecode"]; var header = settings["header"]; var body = settings["body"]; var footer = settings["footer"]; var filter = settings["filter"]; var orderby = settings["orderby"]; var returnLimit = Convert.ToInt32(settings["returnlimit"]); var pageNumber = Convert.ToInt32(settings["pagenumber"]); var pageSize = Convert.ToInt32(settings["pagesize"]); var cascade = Convert.ToBoolean(settings["cascade"]); var searchText = settings["searchtext"]; var searchCategory = settings["searchcategory"]; if (searchText != "") filter += " and (NB3.[ProductName] like '%" + searchText + "%' or NB3.[ProductRef] like '%" + searchText + "%' or NB3.[Summary] like '%" + searchText + "%' ) "; if (Utils.IsNumeric(searchCategory)) { if (orderby == "{bycategoryproduct}") orderby += searchCategory; var objQual = DataProvider.Instance().ObjectQualifier; var dbOwner = DataProvider.Instance().DatabaseOwner; if (!cascade) filter += " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where typecode = 'CATXREF' and XrefItemId = " + searchCategory + ") "; else filter += " and NB1.[ItemId] in (select parentitemid from " + dbOwner + "[" + objQual + "NBrightBuy] where (typecode = 'CATXREF' and XrefItemId = " + searchCategory + ") or (typecode = 'CATCASCADE' and XrefItemId = " + searchCategory + ")) "; } else { if (orderby == "{bycategoryproduct}") orderby = " order by NB3.productname "; } // logic for client list of products if (NBrightBuyUtils.IsClientOnly()) { filter += " and NB1.ItemId in (select ParentItemId from dbo.[NBrightBuy] as NBclient where NBclient.TypeCode = 'USERPRDXREF' and NBclient.UserId = " + UserController.Instance.GetCurrentUserInfo().UserID.ToString("") + ") "; } var recordCount = 0; var themeFolder = StoreSettings.Current.ThemeFolder; if (settings.ContainsKey("themefolder")) themeFolder = settings["themefolder"]; var templCtrl = NBrightBuyUtils.GetTemplateGetter(themeFolder); if (!settings.ContainsKey("portalid")) settings.Add("portalid", PortalSettings.Current.PortalId.ToString("")); // aways make sure we have portalid in settings var objCtrl = new NBrightBuyController(); var headerTempl = templCtrl.GetTemplateData(header, _lang, true, true, true, StoreSettings.Current.Settings()); var bodyTempl = templCtrl.GetTemplateData(body, _lang, true, true, true, StoreSettings.Current.Settings()); var footerTempl = templCtrl.GetTemplateData(footer, _lang, true, true, true, StoreSettings.Current.Settings()); // replace any settings tokens (This is used to place the form data into the SQL) headerTempl = Utils.ReplaceSettingTokens(headerTempl, settings); headerTempl = Utils.ReplaceUrlTokens(headerTempl); bodyTempl = Utils.ReplaceSettingTokens(bodyTempl, settings); bodyTempl = Utils.ReplaceUrlTokens(bodyTempl); footerTempl = Utils.ReplaceSettingTokens(footerTempl, settings); footerTempl = Utils.ReplaceUrlTokens(footerTempl); var obj = new NBrightInfo(true); strOut = GenXmlFunctions.RenderRepeater(obj, headerTempl); // This is data created by plugins into the NBS data tables. var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetEntityTypeProviders(); if (paging) // get record count for paging { if (pageNumber == 0) pageNumber = 1; if (pageSize == 0) pageSize = StoreSettings.Current.GetInt("pagesize"); // get only entity type required recordCount = objCtrl.GetListCount(PortalSettings.Current.PortalId, -1, entitytypecode, filter, entitytypecodelang, _lang); } // get selected entitytypecode. var objList = objCtrl.GetDataList(PortalSettings.Current.PortalId, -1, entitytypecode, entitytypecodelang, _lang, filter, orderby, StoreSettings.Current.DebugMode, "", returnLimit, pageNumber, pageSize, recordCount); strOut += GenXmlFunctions.RenderRepeater(objList, bodyTempl); strOut += GenXmlFunctions.RenderRepeater(obj, footerTempl); // add paging if needed if (paging) { var pg = new NBrightCore.controls.PagingCtrl(); strOut += pg.RenderPager(recordCount, pageSize, pageNumber); } return strOut; }
protected override void OnInit(EventArgs e) { _pluginData = new PluginData(PortalId); base.OnInit(e); try { if (UserId > 0) //do nothing if user not logged on { var ctrl = Utils.RequestQueryStringParam(Context, "ctrl"); // anyone only in the client role is only allowed in the products control if (UserInfo.IsInRole(StoreSettings.ClientEditorRole) && (!UserInfo.IsInRole(StoreSettings.EditorRole) && !UserInfo.IsInRole(StoreSettings.ManagerRole) && !UserInfo.IsInRole("Administrators"))) { // ctrl = "products"; } if (ctrl == "") ctrl = (String) HttpContext.Current.Session["nbrightbackofficectrl"]; else HttpContext.Current.Session["nbrightbackofficectrl"] = ctrl; if (String.IsNullOrEmpty(ctrl)) { var p = _pluginData.GetPlugin(0); if (p != null) ctrl = p.GUIDKey; if (ctrl=="") ctrl = "orders"; if (StoreSettings.Current.Settings().Count == 0) ctrl = "settings"; HttpContext.Current.Session["nbrightbackofficectrl"] = ctrl; } var ctlpath = GetControlPath(ctrl); if (ctlpath == "") // ctrl may not exist in system, so default to products { ctrl = "products"; ctlpath = GetControlPath(ctrl); } // check for group data, this MUST be there otherwise this is the first time into the BO, so redirect to Admin. var l = NBrightBuyUtils.GetCategoryGroups(Utils.GetCurrentCulture(),true,""); // don't test for grouptype, on upgrade it might not be there!! if (!l.Any()) { // redisplay settings ctrl = "settings"; ctlpath = GetControlPath(ctrl); NBrightBuyUtils.SetNotfiyMessage(ModuleId, "settingssetup", NotifyCode.fail); } if (ctlpath != "" && CheckSecurity(ctrl)) { // make compatible with running DNN in virtual directory if (HttpContext.Current.Request.ApplicationPath != null && !ctlpath.StartsWith(HttpContext.Current.Request.ApplicationPath)) ctlpath = HttpContext.Current.Request.ApplicationPath + ctlpath; var c1 = LoadControl(ctlpath); phData.Controls.Add(c1); } else { var c1 = new Literal(); c1.Text = "INVALID CONTROL: " + ctrl; phData.Controls.Add(c1); } } } catch (Exception exc) //Module failed to load { //display the error on the template (don;t want to log it here, prefer to deal with errors directly.) var l = new Literal(); l.Text = exc.ToString(); phData.Controls.Add(l); } }
private void DoImport(NBrightInfo nbi) { var fname = StoreSettings.Current.FolderUploadsMapPath + "\\" + nbi.GetXmlProperty("genxml/hidden/hiddatafile"); if (System.IO.File.Exists(fname)) { var xmlFile = new XmlDocument(); xmlFile.Load(fname); if (GenXmlFunctions.GetField(rpData, "importproducts") == "True") { ImportRecord(xmlFile,"PRD"); ImportRecord(xmlFile, "PRDLANG"); // import any entitytype provider data // This is data created by plugins into the NBS data tables. var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetEntityTypeProviders(); foreach (var prov in provList) { var entityprov = EntityTypeInterface.Instance(prov.Key); if (entityprov != null) { ImportRecord(xmlFile, entityprov.GetEntityTypeCode()); ImportRecord(xmlFile, entityprov.GetEntityTypeCodeLang()); } } ImportRecord(xmlFile, "PRDXREF"); ImportRecord(xmlFile, "USERPRDXREF"); } if (GenXmlFunctions.GetField(rpData, "importcategories") == "True") { ImportRecord(xmlFile, "CATEGORY"); ImportRecord(xmlFile, "CATEGORYLANG"); } if (GenXmlFunctions.GetField(rpData, "importcategories") == "True" && GenXmlFunctions.GetField(rpData, "importproducts") == "True") { ImportRecord(xmlFile, "CATCASCADE"); ImportRecord(xmlFile, "CATXREF"); } if (GenXmlFunctions.GetField(rpData, "importproperties") == "True") { ImportRecord(xmlFile, "GROUP"); ImportRecord(xmlFile, "GROUPLANG"); } if (GenXmlFunctions.GetField(rpData, "importsettings") == "True") { ImportRecord(xmlFile, "SETTINGS"); } if (GenXmlFunctions.GetField(rpData, "importorders") == "True") { ImportRecord(xmlFile, "ORDER"); } RelinkNewIds(); } }
public override TestOfData TestOfDataBinding(object sender, EventArgs e) { var rtnData = new TestOfData(); rtnData.DataValue = null; rtnData.TestValue = null; var lc = (Literal)sender; var container = (IDataItemContainer)lc.NamingContainer; try { NBrightInfo info; ProductData prodData; CatProdXref xrefData; var xmlDoc = new XmlDocument(); CartData currentcart; xmlDoc.LoadXml("<root>" + lc.Text + "</root>"); var xmlNod = xmlDoc.SelectSingleNode("root/tag"); if (container.DataItem != null && xmlNod != null && (xmlNod.Attributes != null && xmlNod.Attributes["function"] != null)) { rtnData.DataValue = "FALSE"; XmlNode nod; var testValue = ""; if ((xmlNod.Attributes["testvalue"] != null)) testValue = xmlNod.Attributes["testvalue"].Value; // check for setting key var settingkey = ""; if ((xmlNod.Attributes["key"] != null)) settingkey = xmlNod.Attributes["key"].Value; var role = ""; if ((xmlNod.Attributes["role"] != null)) role = xmlNod.Attributes["role"].Value; var index = ""; if ((xmlNod.Attributes["index"] != null)) index = xmlNod.Attributes["index"].Value; var modulekey = ""; if ((xmlNod.Attributes["modulekey"] != null)) modulekey = xmlNod.Attributes["modulekey"].Value; var targetmodulekey = ""; if ((xmlNod.Attributes["targetmodulekey"] != null)) targetmodulekey = xmlNod.Attributes["targetmodulekey"].Value; // do special tests for named fucntions switch (xmlNod.Attributes["function"].Value.ToLower()) { case "searchactive": var navdata2 = new NavigationData(PortalSettings.Current.PortalId, targetmodulekey); if (navdata2.Criteria == "") rtnData.DataValue = "FALSE"; else rtnData.DataValue = "TRUE"; break; case "productcount": var navdata = new NavigationData(PortalSettings.Current.PortalId, modulekey); rtnData.DataValue = navdata.RecordCount; break; case "price": rtnData.DataValue = GetFromPrice((NBrightInfo) container.DataItem); break; case "dealerprice": rtnData.DataValue = GetDealerPrice((NBrightInfo) container.DataItem); break; case "saleprice": rtnData.DataValue = GetSalePrice((NBrightInfo) container.DataItem); break; case "imgexists": rtnData.DataValue = testValue; nod = GenXmlFunctions.GetGenXmLnode(DataBinder.Eval(container.DataItem, _databindColumn).ToString(), "genxml/imgs/genxml[" + rtnData.DataValue + "]"); if (nod == null) rtnData.DataValue = "FALSE"; break; case "modelexists": rtnData.DataValue = testValue; nod = GenXmlFunctions.GetGenXmLnode(DataBinder.Eval(container.DataItem, _databindColumn).ToString(), "genxml/models/genxml[" + rtnData.DataValue + "]"); if (nod == null) rtnData.DataValue = "FALSE"; break; case "optionexists": rtnData.DataValue = testValue; nod = GenXmlFunctions.GetGenXmLnode(DataBinder.Eval(container.DataItem, _databindColumn).ToString(), "genxml/options/genxml[" + rtnData.DataValue + "]"); if (nod == null) rtnData.DataValue = "FALSE"; break; case "isinstock": if (IsInStock((NBrightInfo) container.DataItem)) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "ismodelinstock": if (IsModelInStock((NBrightInfo) container.DataItem)) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "inwishlist": var productid = DataBinder.Eval(container.DataItem, "ItemId").ToString(); if (Utils.IsNumeric(productid)) { var listname = "ItemList"; if ((xmlNod.Attributes["listname"] != null)) listname = xmlNod.Attributes["listname"].Value; var wl = new ItemListData(listname); if (wl.IsInList(productid)) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } } break; case "isonsale": var saleprice = GetSalePriceDouble((NBrightInfo) container.DataItem); if (saleprice > 0) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "hasrelateditems": info = (NBrightInfo) container.DataItem; prodData = ProductUtils.GetProductData(info.ItemID, info.Lang); if (prodData.GetRelatedProducts().Count > 0) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "hasdocuments": info = (NBrightInfo) container.DataItem; prodData = ProductUtils.GetProductData(info.ItemID, info.Lang); if (prodData.Docs.Count > 0) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "haspurchasedocuments": info = (NBrightInfo) container.DataItem; prodData = ProductUtils.GetProductData(info.ItemID, info.Lang); if (prodData.Docs.Select(i => i.GetXmlProperty("genxml/checkbox/chkpurchase") == "True").Any()) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "hasproperty": info = (NBrightInfo) container.DataItem; xrefData = new CatProdXref(); if (xrefData.IsProductInCategory(info.ItemID,testValue)) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "isincategory": info = (NBrightInfo) container.DataItem; xrefData = new CatProdXref(); if (xrefData.IsProductInCategory(info.ItemID,testValue)) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "isdocpurchasable": nod = GenXmlFunctions.GetGenXmLnode(DataBinder.Eval(container.DataItem, _databindColumn).ToString(), "genxml/docs/genxml[" + index + "]/hidden/docid"); if (nod != null) { info = (NBrightInfo) container.DataItem; prodData = ProductUtils.GetProductData(info.ItemID, info.Lang); if (prodData.Docs.Select(i => i.GetXmlProperty("genxml/checkbox/chkpurchase") == "True" && i.GetXmlProperty("genxml/hidden/docid") == nod.InnerText).Any()) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } } break; case "isdocpurchased": nod = GenXmlFunctions.GetGenXmLnode(DataBinder.Eval(container.DataItem, _databindColumn).ToString(), "genxml/docs/genxml[" + index + "]/hidden/docid"); if (nod != null && Utils.IsNumeric(nod.InnerText)) { var uInfo = UserController.GetCurrentUserInfo(); //[TODO: work out method of finding if user purchased document.] //if (NBrightBuyV2Utils.DocHasBeenPurchasedByDocId(uInfo.UserID, Convert.ToInt32(nod.InnerText))) //{ // rtnData.DataValue = "TRUE"; // rtnData.TestValue = "TRUE"; //} } break; case "hasmodelsoroptions": nod = GenXmlFunctions.GetGenXmLnode(DataBinder.Eval(container.DataItem, _databindColumn).ToString(), "genxml/models/genxml[2]/hidden/modelid"); if (nod != null && nod.InnerText != "") { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } if (rtnData.DataValue == "FALSE") { nod = GenXmlFunctions.GetGenXmLnode(DataBinder.Eval(container.DataItem, _databindColumn).ToString(), "genxml/options/genxml[1]/hidden/optionid"); if (nod != null && nod.InnerText != "") { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } } break; case "isproductincart": var cartData = new CartData(PortalSettings.Current.PortalId); info = (NBrightInfo) container.DataItem; if (cartData.GetCartItemList().Select(i => i.GetXmlProperty("genxml/productid") == info.ItemID.ToString("")).Any()) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "settings": if (_settings != null && _settings.ContainsKey(settingkey) && _settings[settingkey] == testValue) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "debugmode": if (StoreSettings.Current.DebugMode) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "isinrole": if (CmsProviderManager.Default.IsInRole(role)) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "issuperuser": if (UserController.GetCurrentUserInfo().IsSuperUser) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "isuser": if (UserController.GetCurrentUserInfo().UserID >= 0) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "isclientordermode": currentcart = new CartData(PortalSettings.Current.PortalId); if (currentcart.IsClientOrderMode()) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "carteditmode": currentcart = new CartData(PortalSettings.Current.PortalId); var editmode = currentcart.GetInfo().GetXmlProperty("genxml/carteditmode"); if (editmode == testValue) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "iscartempty": currentcart = new CartData(PortalSettings.Current.PortalId); var l = currentcart.GetCartItemList(); if (!l.Any()) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "hasshippingproviders": var pluginData = new PluginData(PortalSettings.Current.PortalId); var provList = pluginData.GetShippingProviders(); if (provList.Count > 1) { rtnData.DataValue = "TRUE"; rtnData.TestValue = "TRUE"; } break; case "profile": var userInfo = UserController.GetCurrentUserInfo(); if (userInfo.UserID >= 0) rtnData.DataValue = userInfo.Profile.GetPropertyValue(settingkey); break; case "static": break; default: rtnData.DataValue = null; break; } } } catch (Exception) { lc.Text = ""; } return rtnData; }
private String GetMenu() { var strCacheKey = "bomenuhtml*" + Utils.GetCurrentCulture() + "*" + PortalId.ToString("") + "*" + UserId.ToString(""); var strOut = ""; var obj = Utils.GetCache(strCacheKey); if (obj != null) strOut = (String)obj; if (StoreSettings.Current.DebugMode || strOut == "") { var pluginData = new PluginData(PortalId); var bomenuattributes = DnnUtils.GetLocalizedString("bomenuattributes", _resxpath, Utils.GetCurrentCulture()); var bosubmenuattributes = DnnUtils.GetLocalizedString("bosubmenuattributes", _resxpath, Utils.GetCurrentCulture()); //get group list (these are the sections/first level of the menu) var rootList = new Dictionary<String, String>(); foreach (var p in pluginData.GetPluginList()) { var grpname = p.GetXmlProperty("genxml/textbox/group"); if (p.GetXmlPropertyBool("genxml/checkbox/hidden") == false) { var rootname = grpname; if (rootname == "") rootname = p.GetXmlProperty("genxml/textbox/ctrl"); if (!rootList.ContainsKey(rootname)) { var resxname = DnnUtils.GetLocalizedString(rootname.ToLower(), _resxpath, Utils.GetCurrentCulture()); if (resxname == "") resxname = rootname; rootList.Add(rootname, resxname); } } } strOut = "<ul " + bomenuattributes + ">"; foreach (var rootname in rootList) { var rtnlist = pluginData.GetSubList(rootname.Key); var sublist = new List<NBrightInfo>(); // check security foreach (var p in rtnlist) { if (CheckSecurity(p)) sublist.Add(p); } var href = "#"; var ctrl = ""; var name = "unknown"; var icon = ""; var hrefclass = ""; var securityrootcheck = true; if (sublist.Count > 0) { // has sub menus ctrl = rootname.Key; name = rootname.Value; hrefclass = "class='dropdown-toggle'"; icon = DnnUtils.GetLocalizedString(ctrl.ToLower() + "_icon", _resxpath, Utils.GetCurrentCulture()); strOut += "<li class='dropdown'>"; } else { // clickable root menu var rootp = pluginData.GetPluginByCtrl(rootname.Key); if (rootp != null) { ctrl = rootp.GetXmlProperty("genxml/textbox/ctrl"); name = rootp.GetXmlProperty("genxml/textbox/name"); icon = rootp.GetXmlProperty("genxml/textbox/icon"); securityrootcheck = CheckSecurity(rootp); if (securityrootcheck) { strOut += "<li>"; var param = new string[1]; param[0] = "ctrl=" + ctrl; href = Globals.NavigateURL(TabId, "", param); } } else { securityrootcheck = false; } } if (securityrootcheck) strOut += GetRootLinkNode(name, ctrl, icon, href, hrefclass); if (sublist.Count > 0) { strOut += "<ul " + bosubmenuattributes + ">"; foreach (var p in sublist) { if (p.GetXmlPropertyBool("genxml/checkbox/hidden") == false) { ctrl = p.GetXmlProperty("genxml/textbox/ctrl"); name = p.GetXmlProperty("genxml/textbox/name"); icon = p.GetXmlProperty("genxml/textbox/icon"); var param = new string[1]; param[0] = "ctrl=" + ctrl; href = Globals.NavigateURL(TabId, "", param); strOut += "<li>" + GetSubLinkNode(name, ctrl, icon, href) + "</li>"; } } strOut += "</ul>"; } if (securityrootcheck) strOut += "</li>"; } // add exit button strOut += "<li>"; var tabid = StoreSettings.Current.Get("exittab"); var exithref = "/"; if (Utils.IsNumeric(tabid)) exithref = Globals.NavigateURL(Convert.ToInt32(tabid)); strOut += GetRootLinkNode("Exit", "exit", DnnUtils.GetLocalizedString("exit_icon", _resxpath, Utils.GetCurrentCulture()), exithref, ""); strOut += "</li>"; strOut += "</ul>"; NBrightBuyUtils.SetModCache(0, strCacheKey, strOut); if (StoreSettings.Current.DebugModeFileOut) Utils.SaveFile(PortalSettings.HomeDirectoryMapPath + "\\debug_menu.html", strOut); } return strOut; }
protected override void OnInit(EventArgs e) { base.OnInit(e); if (ModSettings.Get("themefolder") == "") // if we don't have module setting jump out { rpPaymentGateways.ItemTemplate = new GenXmlTemplate("NO MODULE SETTINGS"); return; } try { var pluginData = new PluginData(PortalSettings.Current.PortalId); _provList = pluginData.GetPaymentProviders(); _cartInfo = new CartData(PortalId); var orderid = Utils.RequestQueryStringParam(Context, "orderid"); var templOk = ModSettings.Get("paymentoktemplate"); var templFail = ModSettings.Get("paymentfailtemplate"); var templHeader = ""; var templFooter = ""; var templText = ""; if ((_provList.Count == 0 || _cartInfo.PurchaseInfo.GetXmlPropertyDouble("genxml/appliedtotal") <= 0) && orderid == "") { #region "No Payment providers, so process as a ordering system" var displayTempl = templOk; if (!_cartInfo.IsValidated()) displayTempl = templFail; rpDetailDisplay.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(ModCtrl.GetTemplateData(ModSettings, displayTempl, Utils.GetCurrentCulture(), DebugMode), ModSettings.Settings(), PortalSettings.HomeDirectory); _templateHeader = (GenXmlTemplate) rpDetailDisplay.ItemTemplate; #endregion } else { #region "Payment Details" // display the payment method by default templHeader = ModSettings.Get("paymentordersummary"); templFooter = ModSettings.Get("paymentfooter"); var templPaymentText = ""; var msg = ""; if (Utils.IsNumeric(orderid)) { // orderid exists, so must be return from bank; Process it!! _orderData = new OrderData(PortalId, Convert.ToInt32(orderid)); _prov = PaymentsInterface.Instance(_orderData.PaymentProviderKey); msg = _prov.ProcessPaymentReturn(Context); if (msg == "") // no message so successful { _orderData = new OrderData(PortalId, Convert.ToInt32(orderid)); // get the updated order. _orderData.PaymentOk("050"); templText = templOk; } else { _orderData = new OrderData(PortalId, Convert.ToInt32(orderid)); // reload the order, becuase the status and typecode may have changed by the payment provider. _orderData.AddAuditMessage(msg, "paymsg", "payment.ascx", "False"); _orderData.Save(); templText = templFail; } templFooter = ""; // return from bank, hide footer } else { // not returning from bank, so display list of payment providers. rpPaymentGateways.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(GetPaymentProviderTemplates(), ModSettings.Settings(), PortalSettings.HomeDirectory); } if (templText == "") templText = templHeader; // if we are NOT returning from bank, then display normal header summary template templPaymentText = ModCtrl.GetTemplateData(ModSettings, templText, Utils.GetCurrentCulture(), DebugMode); rpDetailDisplay.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(templPaymentText, ModSettings.Settings(), PortalSettings.HomeDirectory); _templateHeader = (GenXmlTemplate) rpDetailDisplay.ItemTemplate; if (templFooter != "") { var templPaymentFooterText = ModCtrl.GetTemplateData(ModSettings, templFooter, Utils.GetCurrentCulture(), DebugMode); rpDetailFooter.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(templPaymentFooterText, ModSettings.Settings(), PortalSettings.HomeDirectory); } #endregion } // insert page header text NBrightBuyUtils.IncludePageHeaders(ModCtrl, ModuleId, Page, _templateHeader, ModSettings.Settings(), null, DebugMode); } catch (Exception exc) { //display the error on the template (don;t want to log it here, prefer to deal with errors directly.) var l = new Literal(); l.Text = exc.ToString(); phData.Controls.Add(l); } }
private String GetControlPath(String ctrl) { var pluginData = new PluginData(PortalId); var p = pluginData.GetPluginByCtrl(ctrl); return p.GetXmlProperty("genxml/textbox/path"); }