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 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 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(); } }
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 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; }