public NBrightInfo GetPluginSinglePageData(string GuidKey, string typeCode, string lang, int portalid) { DataCache.ClearCache(); // clear ALL cache. var objCtrl = new NBrightBuyController(); var info = objCtrl.GetByGuidKey(portalid, -1, typeCode, GuidKey); if (info == null) { // create record if not in DB info = new NBrightInfo(true); info.GUIDKey = GuidKey; info.TypeCode = typeCode; info.ModuleId = -1; info.PortalId = portalid; info.ItemID = objCtrl.Update(info); } var nbilang = objCtrl.GetDataLang(info.ItemID, lang); if (nbilang == null) { // create lang records if not in DB foreach (var lg in DnnUtils.GetCultureCodeList(portalid)) { nbilang = objCtrl.GetDataLang(info.ItemID, lg); if (nbilang == null) { nbilang = new NBrightInfo(true); nbilang.GUIDKey = ""; nbilang.TypeCode = typeCode + "LANG"; nbilang.ParentItemId = info.ItemID; nbilang.Lang = lg; nbilang.ModuleId = -1; nbilang.PortalId = portalid; nbilang.ItemID = objCtrl.Update(nbilang); } } } // do edit field data if a itemid has been selected var nbi = objCtrl.Get(info.ItemID, typeCode + "LANG", lang); return(nbi); }
private void LoadData(int groupId) { Exists = false; if (groupId == -1) { AddNew(); // add new record if -1 is used as id. } var objCtrl = new NBrightBuyController(); Info = objCtrl.Get(groupId, "GROUPLANG", _lang); if (Info != null) { Exists = true; DataRecord = objCtrl.GetData(groupId); DataLangRecord = objCtrl.GetDataLang(groupId, _lang); } }
public string SavePluginSinglePageData(HttpContext context) { try { var objCtrl = new NBrightBuyController(); //get uploaded params var ajaxInfo = NBrightBuyUtils.GetAjaxFields(context); var lang = NBrightBuyUtils.SetContextLangauge(ajaxInfo); // Ajax breaks context with DNN, so reset the context language to match the client. var editlang = NBrightBuyUtils.GetEditLang(ajaxInfo); var itemid = ajaxInfo.GetXmlProperty("genxml/hidden/itemid"); if (Utils.IsNumeric(itemid)) { var nbi = objCtrl.Get(Convert.ToInt32(itemid)); if (nbi != null) { // get data passed back by ajax var strIn = HttpUtility.UrlDecode(Utils.RequestParam(context, "inputxml")); // update record with ajax data nbi.UpdateAjax(strIn); objCtrl.Update(nbi); // do langauge record var nbi2 = objCtrl.GetDataLang(Convert.ToInt32(itemid), editlang); nbi2.UpdateAjax(strIn); objCtrl.Update(nbi2); } DataCache.ClearCache(); // clear ALL cache. } return(""); } catch (Exception e) { return(e.ToString()); } }
public int Validate() { var errorcount = 0; // default any undefined group type as category (I think quickcategory v1.0.0 plugin causes this) if (DataRecord.GetXmlProperty("genxml/dropdownlist/ddlgrouptype") == "") { DataRecord.SetXmlProperty("genxml/dropdownlist/ddlgrouptype", "cat"); _objCtrl.Update(DataRecord); } if (GroupType == "cat") { // the base category ref cannot have language dependant refs, we therefore just use a unique key var catref = DataRecord.GetXmlProperty("genxml/textbox/txtcategoryref"); if (catref == "" || DataRecord.GUIDKey == "") { catref = Utils.GetUniqueKey().ToLower(); DataRecord.SetXmlProperty("genxml/textbox/txtcategoryref", catref); DataRecord.GUIDKey = catref; errorcount += 1; } if (DataRecord.GetXmlProperty("genxml/dropdownlist/ddlparentcatid") != DataRecord.ParentItemId.ToString()) { DataRecord.SetXmlProperty("genxml/dropdownlist/ddlparentcatid", DataRecord.ParentItemId.ToString()); } } DataRecord.ValidateXmlFormat(); if (DataLangRecord == null) { // we have no datalang record for this language, so get an existing one and save it. var l = _objCtrl.GetList(_portalId, -1, "CATEGORYLANG", " and NB1.ParentItemId = " + Info.ItemID.ToString("")); if (l.Count > 0) { DataLangRecord = (NBrightInfo)l[0].Clone(); DataLangRecord.ItemID = -1; DataLangRecord.Lang = _lang; DataLangRecord.ValidateXmlFormat(); _objCtrl.Update(DataLangRecord); } } // fix image var imgpath = DataRecord.GetXmlProperty("genxml/hidden/imagepath"); var imgurl = DataRecord.GetXmlProperty("genxml/hidden/imageurl"); var imagefilename = Path.GetFileName(imgpath); if (StoreSettings.Current != null) // current setting not valid in Scheduler. { if (!imgpath.StartsWith(StoreSettings.Current.FolderImagesMapPath)) { DataRecord.SetXmlProperty("genxml/hidden/imagepath", StoreSettings.Current.FolderImagesMapPath.TrimEnd('\\') + "\\" + imagefilename); errorcount += 1; } if (imagefilename == "") { DataRecord.SetXmlProperty("genxml/hidden/imagepath", ""); errorcount += 1; } if (!imgurl.StartsWith(StoreSettings.Current.FolderImages)) { DataRecord.SetXmlProperty("genxml/hidden/imageurl", StoreSettings.Current.FolderImages.TrimEnd('/') + "/" + imagefilename); errorcount += 1; } } if (imagefilename == "") { DataRecord.SetXmlProperty("genxml/hidden/imageurl", ""); errorcount += 1; } // check guidkey is correct if (DataRecord.GUIDKey != CategoryRef) { DataRecord.GUIDKey = CategoryRef; errorcount += 1; } if (errorcount > 0) { _objCtrl.Update(DataRecord); // update if we find a error } // fix langauge records foreach (var lang in DnnUtils.GetCultureCodeList(_portalId)) { var l = _objCtrl.GetList(_portalId, -1, "CATEGORYLANG", " and NB1.ParentItemId = " + Info.ItemID.ToString("") + " and NB1.Lang = '" + lang + "'"); if (l.Count == 0 && DataLangRecord != null) { var nbi = (NBrightInfo)DataLangRecord.Clone(); nbi.ItemID = -1; nbi.Lang = lang; _objCtrl.Update(nbi); errorcount += 1; } if (l.Count > 1) { // we have more records than shoudl exists, remove any old ones. var l2 = _objCtrl.GetList(_portalId, -1, "CATEGORYLANG", " and NB1.ParentItemId = " + Info.ItemID.ToString("") + " and NB1.Lang = '" + lang + "'", "order by Modifieddate desc"); var lp = 1; foreach (var i in l2) { if (lp >= 2) { _objCtrl.Delete(i.ItemID); } lp += 1; } } } // Build langauge refs if (GroupType == "cat") { var updaterequired = CategoryUtils.ValidateLangaugeRef(_portalId, CategoryId); if (updaterequired) { // the catref has been updated, so reload the datarecord DataLangRecord = _objCtrl.GetDataLang(CategoryId, _lang); } } // fix groups with mismatching ddlgrouptype if (GroupType != "cat") { var grp = _objCtrl.Get(DataRecord.ParentItemId, "GROUP"); if (grp != null) { if (grp.GUIDKey != GroupType) { DataRecord.SetXmlProperty("genxml/dropdownlist/ddlgrouptype", grp.GUIDKey); _objCtrl.Update(DataRecord); errorcount += 1; } } } // update shared product if flagged // possible call from scheduler, no storesetting in that case. if ((StoreSettings.Current != null) && StoreSettings.Current.GetBool(StoreSettingKeys.sharecategories) && DataRecord.PortalId >= 0) { DataRecord.PortalId = -1; _objCtrl.Update(DataRecord); if (DataLangRecord != null) { DataLangRecord.PortalId = -1; _objCtrl.Update(DataLangRecord); } } return(errorcount); }
private void LoadData(int productId, Boolean hydrateLists = true) { Exists = false; var objCtrl = new NBrightBuyController(); if (productId == -1) productId = AddNew(); // add new record if -1 is used as id. Info = objCtrl.Get(productId, "PRDLANG", _lang); if (Info != null) { _portalId = Info.PortalId; _storeSettings = new StoreSettings(_portalId); Exists = true; if (hydrateLists) { //build model list Models = GetEntityList("models"); Options = GetEntityList("options"); Imgs = GetEntityList("imgs"); Docs = GetEntityList("docs"); OptionValues = new List<NBrightInfo>(); foreach (var o in Options) { var l = GetOptionValuesById(o.GetXmlProperty("genxml/hidden/optionid")); OptionValues.AddRange(l); } } Exists = true; DataRecord = objCtrl.GetData(productId); DataLangRecord = objCtrl.GetDataLang(productId, _lang); if (DataLangRecord == null) // rebuild langauge is we have a missing lang record { Validate(); DataLangRecord = objCtrl.GetDataLang(productId, _lang); } IsOnSale = CheckIsOnSale(); IsInStock = CheckIsInStock(); } else { Exists = false; } }
private void LoadData(int groupId) { Exists = false; if (groupId == -1) AddNew(); // add new record if -1 is used as id. var objCtrl = new NBrightBuyController(); Info = objCtrl.Get(groupId, "GROUPLANG", _lang); if (Info != null) { Exists = true; DataRecord = objCtrl.GetData(groupId); DataLangRecord = objCtrl.GetDataLang(groupId, _lang); } }
public int Validate() { var errorcount = 0; // default any undefined group type as category (I think quickcategory v1.0.0 plugin causes this) if (DataRecord.GetXmlProperty("genxml/dropdownlist/ddlgrouptype") == "") { DataRecord.SetXmlProperty("genxml/dropdownlist/ddlgrouptype", "cat"); _objCtrl.Update(DataRecord); } if (GroupType == "cat") { // the base category ref cannot have language dependant refs, we therefore just use a unique key var catref = DataRecord.GetXmlProperty("genxml/textbox/txtcategoryref"); if (catref == "" || DataRecord.GUIDKey == "") { catref = Utils.GetUniqueKey().ToLower(); DataRecord.SetXmlProperty("genxml/textbox/txtcategoryref", catref); DataRecord.GUIDKey = catref; errorcount += 1; } if (DataRecord.GetXmlProperty("genxml/dropdownlist/ddlparentcatid") != DataRecord.ParentItemId.ToString()) { DataRecord.SetXmlProperty("genxml/dropdownlist/ddlparentcatid", DataRecord.ParentItemId.ToString()); } } DataRecord.ValidateXmlFormat(); // fix image var imgpath = DataRecord.GetXmlProperty("genxml/hidden/imagepath"); var imgurl = DataRecord.GetXmlProperty("genxml/hidden/imageurl"); var imagefilename = Path.GetFileName(imgpath); if (StoreSettings.Current != null) // current setting not valid in Scheduler. { if (!imgpath.StartsWith(StoreSettings.Current.FolderImagesMapPath)) { DataRecord.SetXmlProperty("genxml/hidden/imagepath", StoreSettings.Current.FolderImagesMapPath.TrimEnd('\\') + "\\" + imagefilename); errorcount += 1; } if (imagefilename == "") { DataRecord.SetXmlProperty("genxml/hidden/imagepath", ""); errorcount += 1; } if (!imgurl.StartsWith(StoreSettings.Current.FolderImages)) { DataRecord.SetXmlProperty("genxml/hidden/imageurl", StoreSettings.Current.FolderImages.TrimEnd('/') + "/" + imagefilename); errorcount += 1; } } if (imagefilename == "") { DataRecord.SetXmlProperty("genxml/hidden/imageurl", ""); errorcount += 1; } // check guidkey is correct if (DataRecord.GUIDKey != CategoryRef) { DataRecord.GUIDKey = CategoryRef; errorcount += 1; } if (errorcount > 0) { _objCtrl.Update(DataRecord); // update if we find a error } // Build langauge refs if (GroupType == "cat") { var updaterequired = CategoryUtils.ValidateLangaugeRef(_portalId, CategoryId); if (updaterequired) { // the catref has been updated, so reload the datarecord DataLangRecord = _objCtrl.GetDataLang(CategoryId, _lang); } } // fix groups with mismatching ddlgrouptype if (GroupType != "cat") { var grp = _objCtrl.Get(DataRecord.ParentItemId, "GROUP"); if (grp != null && grp.TypeCode == "GROUP") { if (grp.GUIDKey != GroupType) { DataRecord.SetXmlProperty("genxml/dropdownlist/ddlgrouptype", grp.GUIDKey); _objCtrl.Update(DataRecord); errorcount += 1; } } } // update shared product if flagged // possible call from scheduler, no storesetting in that case. if ((StoreSettings.Current != null) && StoreSettings.Current.GetBool(StoreSettingKeys.sharecategories) && DataRecord.PortalId >= 0) { DataRecord.PortalId = -1; _objCtrl.Update(DataRecord); if (DataLangRecord != null) { DataLangRecord.PortalId = -1; _objCtrl.Update(DataLangRecord); } } return(errorcount); }
public void FillEmptyLanguageFields() { var objCtrl = new NBrightBuyController(); foreach (var toLang in DnnUtils.GetCultureCodeList(_portalId)) { if (toLang != _lang) { var dlang = objCtrl.GetDataLang(DataRecord.ItemID, toLang) ?? DataLangRecord; dlang.Lang = toLang; // product var nodList = DataLangRecord.XMLDoc.SelectNodes("genxml/textbox/*"); if (nodList != null) { foreach (XmlNode nod in nodList) { if (nod.InnerText.Trim() != "") { if (dlang.GetXmlProperty("genxml/textbox/" + nod.Name) == "") { dlang.SetXmlProperty("genxml/textbox/" + nod.Name, nod.InnerText); } } } } // editor if (DataLangRecord.GetXmlProperty("genxml/edt/description") != "") { if (dlang.GetXmlProperty("genxml/edt/description") == "") { dlang.SetXmlProperty("genxml/edt/description", DataLangRecord.GetXmlPropertyRaw("genxml/edt/description")); } } // models var nodList1 = DataLangRecord.XMLDoc.SelectNodes("genxml/models/genxml"); if (nodList1 != null) { var c = 1; foreach (XmlNode nod1 in nodList1) { nodList = nod1.SelectNodes("textbox/*"); if (nodList != null) { foreach (XmlNode nod in nodList) { if (nod.InnerText.Trim() != "") { if (dlang.GetXmlProperty("genxml/models/genxml[" + c + "]/textbox/" + nod.Name) == "") { dlang.SetXmlProperty("genxml/models/genxml[" + c + "]/textbox/" + nod.Name, nod.InnerText); } } } } c += 1; } } // options nodList1 = DataLangRecord.XMLDoc.SelectNodes("genxml/options/genxml"); if (nodList1 != null) { var c = 1; foreach (XmlNode nod1 in nodList1) { nodList = nod1.SelectNodes("textbox/*"); if (nodList != null) { foreach (XmlNode nod in nodList) { if (nod.InnerText.Trim() != "") { if (dlang.GetXmlProperty("genxml/options/genxml[" + c + "]/textbox/" + nod.Name) == "") { dlang.SetXmlProperty("genxml/options/genxml[" + c + "]/textbox/" + nod.Name, nod.InnerText); } } } } c += 1; } } // imgs nodList1 = DataLangRecord.XMLDoc.SelectNodes("genxml/imgs/genxml"); if (nodList1 != null) { var c = 1; foreach (XmlNode nod1 in nodList1) { nodList = nod1.SelectNodes("textbox/*"); if (nodList != null) { foreach (XmlNode nod in nodList) { if (nod.InnerText.Trim() != "") { if (dlang.GetXmlProperty("genxml/imgs/genxml[" + c + "]/textbox/" + nod.Name) == "") { dlang.SetXmlProperty("genxml/imgs/genxml[" + c + "]/textbox/" + nod.Name, nod.InnerText); } } } } c += 1; } } // docs nodList1 = DataLangRecord.XMLDoc.SelectNodes("genxml/docs/genxml"); if (nodList1 != null) { var c = 1; foreach (XmlNode nod1 in nodList1) { nodList = nod1.SelectNodes("textbox/*"); if (nodList != null) { foreach (XmlNode nod in nodList) { if (nod.InnerText.Trim() != "") { if (dlang.GetXmlProperty("genxml/docs/genxml[" + c + "]/textbox/" + nod.Name) == "") { dlang.SetXmlProperty("genxml/docs/genxml[" + c + "]/textbox/" + nod.Name, nod.InnerText); } } } } c += 1; } } // optionvalues nodList1 = DataLangRecord.XMLDoc.SelectNodes("genxml/optionvalues/genxml"); if (nodList1 != null) { var c = 1; foreach (XmlNode nod1 in nodList1) { nodList = nod1.SelectNodes("textbox/*"); if (nodList != null) { foreach (XmlNode nod in nodList) { if (nod.InnerText.Trim() != "") { if (dlang.GetXmlProperty("genxml/optionvalues/genxml[" + c + "]/textbox/" + nod.Name) == "") { dlang.SetXmlProperty("genxml/optionvalues/genxml[" + c + "]/textbox/" + nod.Name, nod.InnerText); } } } } c += 1; } } objCtrl.Update(dlang); } } }
private void LoadData(int categoryId) { Exists = false; if (categoryId == -1) categoryId = AddNew(); // add new record if -1 is used as id. var objCtrl = new NBrightBuyController(); if (_lang == "") _lang = Utils.GetCurrentCulture(); Info = objCtrl.Get(categoryId, "CATEGORYLANG", _lang); if (Info != null) { Exists = true; _portalId = Info.PortalId; DataRecord = objCtrl.GetData(categoryId); DataLangRecord = objCtrl.GetDataLang(categoryId, _lang); if (DataLangRecord == null) // rebuild langauge is we have a missing lang record { Validate(); DataLangRecord = objCtrl.GetDataLang(categoryId, _lang); } } }
private String SaveData(HttpContext context) { try { var objCtrl = new NBrightBuyController(); //get uploaded params var ajaxInfo = NBrightBuyUtils.GetAjaxFields(context); SetContextLangauge(ajaxInfo); // Ajax breaks context with DNN, so reset the context language to match the client. var itemid = ajaxInfo.GetXmlProperty("genxml/hidden/itemid"); var lang = ajaxInfo.GetXmlProperty("genxml/hidden/editlang"); if (lang == "") lang = ajaxInfo.GetXmlProperty("genxml/hidden/lang"); if (lang == "") lang = _lang; if (Utils.IsNumeric(itemid)) { // get DB record var nbi = objCtrl.Get(Convert.ToInt32(itemid)); if (nbi != null) { // get data passed back by ajax var strIn = HttpUtility.UrlDecode(Utils.RequestParam(context, "inputxml")); // update record with ajax data nbi.UpdateAjax(strIn); nbi.GUIDKey = nbi.GetXmlProperty("genxml/textbox/code"); objCtrl.Update(nbi); // do langauge record nbi = objCtrl.GetDataLang(Convert.ToInt32(itemid), lang); nbi.UpdateAjax(strIn); objCtrl.Update(nbi); DataCache.ClearCache(); // clear ALL cache, the usagelimit may need to be reset. } } return ""; } catch (Exception ex) { return ex.ToString(); } }
public int Validate() { var errorcount = 0; var objCtrl = new NBrightBuyController(); // default any undefined group type as category (I think quickcategory v1.0.0 plugin causes this) if (DataRecord.GetXmlProperty("genxml/dropdownlist/ddlgrouptype") == "") { DataRecord.SetXmlProperty("genxml/dropdownlist/ddlgrouptype", "cat"); objCtrl.Update(DataRecord); } if (GroupType == "cat") { // the base category ref cannot have language dependant refs, we therefore just use a unique key var catref = DataRecord.GetXmlProperty("genxml/textbox/txtcategoryref"); if (catref == "" || DataRecord.GUIDKey == "") { catref = Utils.GetUniqueKey().ToLower(); DataRecord.SetXmlProperty("genxml/textbox/txtcategoryref", catref); DataRecord.GUIDKey = catref; errorcount += 1; } if (DataRecord.GetXmlProperty("genxml/dropdownlist/ddlparentcatid") != DataRecord.ParentItemId.ToString()) { DataRecord.SetXmlProperty("genxml/dropdownlist/ddlparentcatid", DataRecord.ParentItemId.ToString()); } } DataRecord.ValidateXmlFormat(); if (DataLangRecord == null) { // we have no datalang record for this language, so get an existing one and save it. var l = objCtrl.GetList(_portalId, -1, "CATEGORYLANG", " and NB1.ParentItemId = " + Info.ItemID.ToString("")); if (l.Count > 0) { DataLangRecord = (NBrightInfo)l[0].Clone(); DataLangRecord.ItemID = -1; DataLangRecord.Lang = _lang; DataLangRecord.ValidateXmlFormat(); objCtrl.Update(DataLangRecord); } } // fix image var imgpath = DataRecord.GetXmlProperty("genxml/hidden/imagepath"); var imgurl = DataRecord.GetXmlProperty("genxml/hidden/imageurl"); var imagefilename = Path.GetFileName(imgpath); if (!imgpath.StartsWith(StoreSettings.Current.FolderImagesMapPath)) { DataRecord.SetXmlProperty("genxml/hidden/imagepath", StoreSettings.Current.FolderImagesMapPath.TrimEnd('\\') + "\\" + imagefilename); errorcount += 1; } if (imagefilename == "") { DataRecord.SetXmlProperty("genxml/hidden/imagepath", ""); errorcount += 1; } if (!imgurl.StartsWith(StoreSettings.Current.FolderImages)) { DataRecord.SetXmlProperty("genxml/hidden/imageurl", StoreSettings.Current.FolderImages.TrimEnd('/') + "/" + imagefilename); errorcount += 1; } if (imagefilename == "") { DataRecord.SetXmlProperty("genxml/hidden/imageurl", ""); errorcount += 1; } // check guidkey is correct if (DataRecord.GUIDKey != CategoryRef) { DataRecord.GUIDKey = CategoryRef; errorcount += 1; } if (errorcount > 0) objCtrl.Update(DataRecord); // update if we find a error // fix langauge records foreach (var lang in DnnUtils.GetCultureCodeList(_portalId)) { var l = objCtrl.GetList(_portalId, -1, "CATEGORYLANG", " and NB1.ParentItemId = " + Info.ItemID.ToString("") + " and NB1.Lang = '" + lang + "'"); if (l.Count == 0 && DataLangRecord != null) { var nbi = (NBrightInfo)DataLangRecord.Clone(); nbi.ItemID = -1; nbi.Lang = lang; objCtrl.Update(nbi); errorcount += 1; } if (l.Count > 1) { // we have more records than shoudl exists, remove any old ones. var l2 = objCtrl.GetList(_portalId, -1, "CATEGORYLANG", " and NB1.ParentItemId = " + Info.ItemID.ToString("") + " and NB1.Lang = '" + lang + "'", "order by Modifieddate desc"); var lp = 1; foreach (var i in l2) { if (lp >=2) objCtrl.Delete(i.ItemID); lp += 1; } } } // Build langauge refs if (GroupType == "cat") { var updaterequired = CategoryUtils.ValidateLangaugeRef(_portalId,CategoryId); if (updaterequired) { // the catref has been updated, so reload the datarecord DataLangRecord = objCtrl.GetDataLang(CategoryId, _lang); } } // fix groups with mismatching ddlgrouptype if (GroupType != "cat") { var grp = objCtrl.Get(DataRecord.ParentItemId, "GROUP"); if (grp != null) { if (grp.GUIDKey != GroupType) { DataRecord.SetXmlProperty("genxml/dropdownlist/ddlgrouptype", grp.GUIDKey); objCtrl.Update(DataRecord); errorcount += 1; } } } return errorcount; }
private String SaveData(HttpContext context) { var objCtrl = new NBrightBuyController(); //get uploaded params var ajaxInfo = NBrightBuyUtils.GetAjaxFields(context); SetContextLangauge(ajaxInfo); // Ajax breaks context with DNN, so reset the context language to match the client. var itemid = ajaxInfo.GetXmlProperty("genxml/hidden/itemid"); var lang = ajaxInfo.GetXmlProperty("genxml/hidden/editlang"); if (lang == "") lang = ajaxInfo.GetXmlProperty("genxml/hidden/lang"); if (lang == "") lang = _lang; if (Utils.IsNumeric(itemid)) { // get DB record var nbi = objCtrl.Get(Convert.ToInt32(itemid)); if (nbi != null) { var typecode = nbi.TypeCode; // get data passed back by ajax var strIn = HttpUtility.UrlDecode(Utils.RequestParam(context, "inputxml")); // update record with ajax data nbi.UpdateAjax(strIn); nbi.GUIDKey = nbi.GetXmlProperty("genxml/textbox/code"); objCtrl.Update(nbi); // do langauge record var nbi2 = objCtrl.GetDataLang(Convert.ToInt32(itemid), lang); nbi2.UpdateAjax(strIn); objCtrl.Update(nbi2); DataCache.ClearCache(); // clear ALL cache. // run the promo before delete, so we remove any promo data that may exist. if (typecode == "CATEGORYPROMO") { PromoUtils.CalcGroupPromoItem(nbi); } if (typecode == "MULTIBUYPROMO") { PromoUtils.CalcMultiBuyPromoItem(nbi); } } } return ""; }
private static void FlagProductMultiBuy(int portalid,int productId, string promoname, int promoid,String promoType, DateTime dteF, DateTime dteU) { var cultureList = DnnUtils.GetCultureCodeList(portalid); var objCtrl = new NBrightBuyController(); var prdData = objCtrl.GetData(productId); var nodList = prdData.XMLDoc.SelectNodes("genxml/models/genxml"); if (nodList != null) { var currentpromoid = prdData.GetXmlPropertyInt("genxml/hidden/promoid"); if (currentpromoid == 0 || currentpromoid == promoid) { prdData.SetXmlProperty("genxml/hidden/promotype", promoType); prdData.SetXmlProperty("genxml/hidden/promoname", promoname); prdData.SetXmlProperty("genxml/hidden/promoid", promoid.ToString()); prdData.SetXmlProperty("genxml/hidden/promocalcdate", DateTime.Now.ToString("O")); prdData.SetXmlProperty("genxml/hidden/datefrom", dteF.ToString("O")); prdData.SetXmlProperty("genxml/hidden/dateuntil", dteU.ToString("O")); objCtrl.Update(prdData); if (promoType == "PROMOMULTIBUY") { foreach (var lang in cultureList) { var p = objCtrl.GetDataLang(promoid, lang); var prdDataLang = objCtrl.GetDataLang(productId, lang); if (prdDataLang != null) { prdDataLang.SetXmlProperty("genxml/hidden/promodesc", p.GetXmlProperty("genxml/textbox/description")); objCtrl.Update(prdDataLang); } } } } } }
private static void CalcProductSalePrice(int portalid, int productId, string amounttype, double amount, string promoname, int promoid, bool overwrite,DateTime dteF, DateTime dteU) { var cultureList = DnnUtils.GetCultureCodeList(portalid); var objCtrl = new NBrightBuyController(); var prdData = objCtrl.GetData(productId); var nodList = prdData.XMLDoc.SelectNodes("genxml/models/genxml"); if (nodList != null) { var currentpromoid = prdData.GetXmlPropertyInt("genxml/hidden/promoid"); if (currentpromoid == 0 || currentpromoid == promoid || overwrite) { prdData.SetXmlProperty("genxml/hidden/promotype", "PROMOGROUP"); prdData.SetXmlPropertyDouble("genxml/hidden/promoname", promoname); prdData.SetXmlProperty("genxml/hidden/promoid", promoid.ToString()); prdData.SetXmlProperty("genxml/hidden/promocalcdate", DateTime.Now.ToString("O")); prdData.SetXmlProperty("genxml/hidden/datefrom", dteF.ToString("O")); prdData.SetXmlProperty("genxml/hidden/dateuntil", dteU.ToString("O")); var lp = 1; foreach (XmlNode nod in nodList) { var nbi = new NBrightInfo(); nbi.XMLData = nod.OuterXml; var unitcost = nbi.GetXmlPropertyDouble("genxml/textbox/txtunitcost"); Double newamt = 0; if (amounttype == "1") { newamt = unitcost - amount; } else { newamt = unitcost - ((unitcost/100)*amount); } if (newamt < 0) newamt = 0; var currentprice = prdData.GetXmlPropertyDouble("genxml/models/genxml[" + lp + "]/textbox/txtsaleprice"); if (!overwrite) { if (currentprice == 0) overwrite = true; if (currentpromoid == promoid) overwrite = true; } if (overwrite) { prdData.SetXmlPropertyDouble("genxml/models/genxml[" + lp + "]/textbox/txtsaleprice", newamt); } lp += 1; } objCtrl.Update(prdData); foreach (var lang in cultureList) { var p = objCtrl.GetDataLang(promoid, lang); var prdDataLang = objCtrl.GetDataLang(productId, lang); if (prdDataLang != null) { prdDataLang.SetXmlProperty("genxml/hidden/promodesc", p.GetXmlProperty("genxml/textbox/description")); objCtrl.Update(prdDataLang); } } } } }
public static void RemoveProductPromoData(int portalid, int productId, int promoid) { var cultureList = DnnUtils.GetCultureCodeList(portalid); var objCtrl = new NBrightBuyController(); var prdData = objCtrl.GetData(productId); var currentpromoid = prdData.GetXmlPropertyInt("genxml/hidden/promoid"); if (currentpromoid == promoid) { prdData.RemoveXmlNode("genxml/hidden/promotype"); prdData.RemoveXmlNode("genxml/hidden/promoname"); prdData.RemoveXmlNode("genxml/hidden/promoid"); prdData.RemoveXmlNode("genxml/hidden/promocalcdate"); prdData.RemoveXmlNode("genxml/hidden/datefrom"); prdData.RemoveXmlNode("genxml/hidden/dateuntil"); // remove any sale price amounts that may have been added by group promotion. var l = prdData.XMLDoc.SelectNodes("genxml/models/genxml"); if (l != null) { var lp = 1; foreach (XmlNode nod in l) { prdData.SetXmlProperty("genxml/models/genxml[" + lp + "]/textbox/txtsaleprice", "0"); lp += 1; } } objCtrl.Update(prdData); foreach (var lang in cultureList) { var prdDataLang = objCtrl.GetDataLang(productId, lang); if (prdDataLang != null) { prdDataLang.RemoveXmlNode("genxml/hidden/promodesc"); objCtrl.Update(prdDataLang); } } } }