private String Copy(String productId) { if (Utils.IsNumeric(productId) && Convert.ToInt32(productId) > 0) { var prodData = ProductUtils.GetProductData(Convert.ToInt32(productId), StoreSettings.Current.EditLanguage); var newid = prodData.Copy(); Update(newid); prodData = ProductUtils.GetProductData(Convert.ToInt32(newid), StoreSettings.Current.EditLanguage); // update modelid, so it's unique var nodList = prodData.DataRecord.XMLDoc.SelectNodes("genxml/models/genxml"); if (nodList != null) { var lp = 1; foreach (var nod in nodList) { prodData.DataRecord.SetXmlProperty("genxml/models/genxml[" + lp.ToString("") + "]/hidden/modelid", Utils.GetUniqueKey()); lp += 1; } } prodData.Save(); ProductUtils.RemoveProductDataCache(prodData); return(newid.ToString("")); } return(""); }
private void Update(int productid) { if (productid > 0) { var prodData = ProductUtils.GetProductData(productid, StoreSettings.Current.EditLanguage); var strXml = GenXmlFunctions.GetGenXml(rpData); var updInfo = new NBrightInfo(true); updInfo.XMLData = strXml; GenXmlFunctions.UploadFile(rpData, "document", StoreSettings.Current.FolderDocumentsMapPath); var ctrl = ((HtmlGenericControl)rpData.Items[0].FindControl("hiddocument")); if (ctrl != null) { var fName = ctrl.Attributes["value"]; updInfo.SetXmlProperty("genxml/hidden/hiddocument", fName); var docCtrl = (FileUpload)rpData.Items[0].FindControl("document"); updInfo.SetXmlProperty("genxml/hidden/posteddocumentname", docCtrl.PostedFile.FileName); } prodData.Update(updInfo.XMLData); prodData.Save(); prodData.FillEmptyLanguageFields(); if (StoreSettings.Current.DebugModeFileOut) { prodData.OutputDebugFile(PortalSettings.HomeDirectoryMapPath + "debug_productupdate.xml"); } NBrightBuyUtils.RemoveModCachePortalWide(PortalId); ProductUtils.RemoveProductDataCache(prodData); } }
public static string RemoveGroupProductPromo(int portalId, int promoid) { var objCtrl = new NBrightBuyController(); var p = objCtrl.GetData(promoid); var typeselect = p.GetXmlProperty("genxml/radiobuttonlist/typeselect"); var catgroupid = p.GetXmlProperty("genxml/dropdownlist/catgroupid"); var propgroupid = p.GetXmlProperty("genxml/dropdownlist/propgroupid"); CategoryData gCat; var groupid = catgroupid; if (typeselect != "cat") { groupid = propgroupid; } gCat = CategoryUtils.GetCategoryData(groupid, Utils.GetCurrentCulture()); if (gCat.Exists) { var prdList = gCat.GetAllArticles(); foreach (var prd in prdList) { // END Promo RemoveProductPromoData(portalId, prd.ParentItemId, p.ItemID); ProductUtils.RemoveProductDataCache(prd.PortalId, prd.ParentItemId); } } return("OK"); }
private void Delete(String productId) { if (Utils.IsNumeric(productId) && Convert.ToInt32(productId) > 0) { var prodData = ProductUtils.GetProductData(Convert.ToInt32(productId), StoreSettings.Current.EditLanguage); prodData.Delete(); NBrightBuyUtils.RemoveModCachePortalWide(PortalId); ProductUtils.RemoveProductDataCache(prodData); } }
public static string RemoveMultiBuyProductPromo(int portalId, int promoid) { var objCtrl = new NBrightBuyController(); var p = objCtrl.GetData(promoid); var propgroupid = p.GetXmlPropertyInt("genxml/dropdownlist/propbuy"); var propapplygroupid = p.GetXmlPropertyInt("genxml/dropdownlist/propapply"); var portalsettings = NBrightDNN.DnnUtils.GetPortalSettings(p.PortalId); var lang = portalsettings.DefaultLanguage; var gCat = CategoryUtils.GetCategoryData(propgroupid, lang); if (gCat.Exists) { var prdList = gCat.GetAllArticles(); foreach (var prd in prdList) { // END Promo RemoveProductPromoData(portalId, prd.ParentItemId, promoid); ProductUtils.RemoveProductDataCache(prd.PortalId, prd.ParentItemId); var productData = ProductUtils.GetProductData(prd.ParentItemId, lang); productData.Save(); // recalc any new prices. } } if (propapplygroupid != propgroupid && propapplygroupid > 0) { gCat = CategoryUtils.GetCategoryData(propapplygroupid, lang); if (gCat.Exists) { var prdList2 = gCat.GetAllArticles(); foreach (var prd in prdList2) { // END Promo RemoveProductPromoData(p.PortalId, prd.ParentItemId, p.ItemID); ProductUtils.RemoveProductDataCache(p.PortalId, prd.ParentItemId); var productData = ProductUtils.GetProductData(prd.ParentItemId, lang); productData.Save(); // recalc any new prices. } } } return("OK"); }
public static string RemoveGroupProductPromo(int portalId, int promoid) { var objCtrl = new NBrightBuyController(); var p = objCtrl.GetData(promoid); var typeselect = p.GetXmlProperty("genxml/radiobuttonlist/typeselect"); var catgroupid = p.GetXmlProperty("genxml/dropdownlist/catgroupid"); var propgroupid = p.GetXmlProperty("genxml/dropdownlist/propgroupid"); var portalsettings = NBrightDNN.DnnUtils.GetPortalSettings(p.PortalId); var lang = portalsettings.DefaultLanguage; var prdList = new List <NBrightInfo>(); if (typeselect == "all") { prdList = objCtrl.GetList(p.PortalId, -1, "PRD"); } else { CategoryData gCat; var groupid = catgroupid; if (typeselect != "cat") { groupid = propgroupid; } gCat = CategoryUtils.GetCategoryData(groupid, lang); if (gCat != null) { prdList = gCat.GetAllArticles(); } } foreach (var prd in prdList) { var productid = prd.ParentItemId; if (typeselect == "all") { productid = prd.ItemID; } // END Promo RemoveProductPromoData(portalId, productid, p.ItemID); ProductUtils.RemoveProductDataCache(prd.PortalId, productid); var productData = ProductUtils.GetProductData(productid, lang); productData.Save(); // recalc any new prices. } return("OK"); }
public override NBrightInfo AfterProductSave(NBrightInfo nbrightInfo) { var promoid = nbrightInfo.GetXmlPropertyInt("genxml/hidden/promoid"); if (promoid > 0) { var prdData = ProductUtils.GetProductData(nbrightInfo.ItemID, nbrightInfo.Lang); var objCtrl = new NBrightBuyController(); var promoData = objCtrl.GetData(promoid); var catgroupid = promoData.GetXmlPropertyInt("genxml/dropdownlist/catgroupid"); var propgroupid = promoData.GetXmlPropertyInt("genxml/dropdownlist/propgroupid"); var propbuygroupid = promoData.GetXmlPropertyInt("genxml/dropdownlist/propbuy"); var propapplygroupid = promoData.GetXmlPropertyInt("genxml/dropdownlist/propapply"); var removepromo = true; foreach (var c in prdData.GetCategories()) { if (c.categoryid == catgroupid) { removepromo = false; } if (c.categoryid == propgroupid) { removepromo = false; } if (c.categoryid == propbuygroupid) { removepromo = false; } if (c.categoryid == propapplygroupid) { removepromo = false; } } if (removepromo) { PromoUtils.RemoveProductPromoData(nbrightInfo.PortalId, nbrightInfo.ItemID, promoid); ProductUtils.RemoveProductDataCache(nbrightInfo.PortalId, nbrightInfo.ItemID); } } return(nbrightInfo); }
private void UpdateProductImages(HttpContext context) { //get uploaded params var settings = NBrightBuyUtils.GetAjaxDictionary(context); if (!settings.ContainsKey("itemid")) { settings.Add("itemid", ""); } var productitemid = settings["itemid"]; var imguploadlist = settings["imguploadlist"]; if (Utils.IsNumeric(productitemid)) { var imgs = imguploadlist.Split(','); foreach (var img in imgs) { if (ImgUtils.IsImageFile(Path.GetExtension(img)) && img != "") { string fullName = StoreSettings.Current.FolderTempMapPath + "\\" + img; if (File.Exists(fullName)) { var imgResize = StoreSettings.Current.GetInt(StoreSettingKeys.productimageresize); if (imgResize == 0) { imgResize = 800; } var imagepath = ResizeImage(fullName, imgResize); var imageurl = StoreSettings.Current.FolderImages.TrimEnd('/') + "/" + Path.GetFileName(imagepath); AddNewImage(Convert.ToInt32(productitemid), imageurl, imagepath); } } } // clear any cache for the product. ProductUtils.RemoveProductDataCache(PortalSettings.Current.PortalId, Convert.ToInt32(productitemid)); var cachekey = "AjaxProductImgs*" + productitemid; Utils.RemoveCache(cachekey); } }
public static string RemoveMultiBuyProductPromo(int portalId, int promoid) { var objCtrl = new NBrightBuyController(); var p = objCtrl.GetData(promoid); var propgroupid = p.GetXmlPropertyInt("genxml/dropdownlist/propbuy"); var propapplygroupid = p.GetXmlPropertyInt("genxml/dropdownlist/propapply"); var gCat = CategoryUtils.GetCategoryData(propgroupid, Utils.GetCurrentCulture()); if (gCat.Exists) { var prdList = gCat.GetAllArticles(); foreach (var prd in prdList) { // END Promo RemoveProductPromoData(portalId, prd.ParentItemId, promoid); ProductUtils.RemoveProductDataCache(prd.PortalId, prd.ParentItemId); } } if (propapplygroupid != propgroupid && propapplygroupid > 0) { gCat = CategoryUtils.GetCategoryData(propapplygroupid, Utils.GetCurrentCulture()); if (gCat.Exists) { var prdList2 = gCat.GetAllArticles(); foreach (var prd in prdList2) { // END Promo RemoveProductPromoData(p.PortalId, prd.ParentItemId, p.ItemID); ProductUtils.RemoveProductDataCache(p.PortalId, prd.ParentItemId); } } } return("OK"); }
public override NBrightInfo AfterProductSave(NBrightInfo nbrightInfo) { var promoid = nbrightInfo.GetXmlPropertyInt("genxml/hidden/promoid"); // legacy promo flag if (nbrightInfo.GetXmlPropertyBool("genxml/hidden/promoflag") || promoid > 0) { var prdData = ProductUtils.GetProductData(nbrightInfo.ItemID, nbrightInfo.Lang); // loop on models to get all promoid at model level. var modelpromoids = new List <int>(); if (promoid > 0) { modelpromoids.Add(promoid); } var lp = 1; foreach (var m in prdData.Models) { var modelPromoId = prdData.Info.GetXmlPropertyInt("genxml/promo/salepriceid" + lp); if (modelPromoId > 0 && !modelpromoids.Contains(modelPromoId)) { modelpromoids.Add(modelPromoId); } modelPromoId = prdData.Info.GetXmlPropertyInt("genxml/promo/dealercostid" + lp); if (modelPromoId > 0 && !modelpromoids.Contains(modelPromoId)) { modelpromoids.Add(modelPromoId); } modelPromoId = prdData.Info.GetXmlPropertyInt("genxml/promo/dealersaleid" + lp); if (modelPromoId > 0 && !modelpromoids.Contains(modelPromoId)) { modelpromoids.Add(modelPromoId); } lp += 1; } // multiple promotions, remove from each model. foreach (var mpid in modelpromoids) { var objCtrl = new NBrightBuyController(); var promoData = objCtrl.GetData(mpid); var catgroupid = promoData.GetXmlPropertyInt("genxml/dropdownlist/catgroupid"); var propgroupid = promoData.GetXmlPropertyInt("genxml/dropdownlist/propgroupid"); var propbuygroupid = promoData.GetXmlPropertyInt("genxml/dropdownlist/propbuy"); var propapplygroupid = promoData.GetXmlPropertyInt("genxml/dropdownlist/propapply"); var removepromo = true; foreach (var c in prdData.GetCategories()) { if (c.categoryid == catgroupid) { removepromo = false; } if (c.categoryid == propgroupid) { removepromo = false; } if (c.categoryid == propbuygroupid) { removepromo = false; } if (c.categoryid == propapplygroupid) { removepromo = false; } } if (removepromo) { PromoUtils.RemoveProductPromoData(nbrightInfo.PortalId, nbrightInfo.ItemID, mpid); ProductUtils.RemoveProductDataCache(nbrightInfo.PortalId, nbrightInfo.ItemID); } } } return(nbrightInfo); }
public static string CalcMultiBuyPromoItem(NBrightInfo p) { var objCtrl = new NBrightBuyController(); var propgroupid = p.GetXmlPropertyInt("genxml/dropdownlist/propbuy"); var promoname = p.GetXmlProperty("genxml/textbox/name"); var validfrom = p.GetXmlProperty("genxml/textbox/validfrom"); var validuntil = p.GetXmlProperty("genxml/textbox/validuntil"); var disabled = p.GetXmlPropertyBool("genxml/checkbox/disabled"); var lastcalculated = p.GetXmlProperty("genxml/hidden/lastcalculated"); if (!disabled) { var portalsettings = NBrightDNN.DnnUtils.GetPortalSettings(p.PortalId); var lang = portalsettings.DefaultLanguage; var runcalc = true; if (Utils.IsDate(lastcalculated)) { if (Convert.ToDateTime(lastcalculated) >= p.ModifiedDate) { runcalc = false; // only run if changed } if (DateTime.Now.Date > Convert.ToDateTime(lastcalculated).Date.AddDays(1)) { runcalc = true; // every day just after midnight. (for site performace) } } if (Utils.IsDate(validuntil)) { if (DateTime.Now.Date > Convert.ToDateTime(validuntil)) { runcalc = true; // need to disable the promo if passed date } } if ((runcalc) && Utils.IsDate(validfrom) && Utils.IsDate(validuntil)) { var dteF = Convert.ToDateTime(validfrom).Date; var dteU = Convert.ToDateTime(validuntil).Date; CategoryData gCat; gCat = CategoryUtils.GetCategoryData(propgroupid, lang); var prdList = gCat.GetAllArticles(); foreach (var prd in prdList) { if (DateTime.Now.Date >= dteF && DateTime.Now.Date <= dteU) { // CALC Promo FlagProductMultiBuy(p.PortalId, prd.ParentItemId, promoname, p.ItemID, "PROMOMULTIBUY", dteF, dteU); } if (DateTime.Now.Date > dteU) { // END Promo RemoveProductPromoData(p.PortalId, prd.ParentItemId, p.ItemID); p.SetXmlProperty("genxml/checkbox/disabled", "True"); objCtrl.Update(p); } ProductUtils.RemoveProductDataCache(p.PortalId, prd.ParentItemId); var productData = ProductUtils.GetProductData(prd.ParentItemId, lang); productData.Save(); // recalc any new prices. } p.SetXmlProperty("genxml/hidden/lastcalculated", DateTime.Now.AddSeconds(10).ToString("O")); // Add 10 sec to time so we don't get exact clash with update time. objCtrl.Update(p); } } return("OK"); }
public static string CalcGroupPromoItem(NBrightInfo p) { var objCtrl = new NBrightBuyController(); var typeselect = p.GetXmlProperty("genxml/radiobuttonlist/typeselect"); var catgroupid = p.GetXmlProperty("genxml/dropdownlist/catgroupid"); var propgroupid = p.GetXmlProperty("genxml/dropdownlist/propgroupid"); var promoname = p.GetXmlProperty("genxml/textbox/name"); var amounttype = p.GetXmlProperty("genxml/radiobuttonlist/amounttype"); var amount = p.GetXmlPropertyDouble("genxml/textbox/amount"); var validfrom = p.GetXmlProperty("genxml/textbox/validfrom"); var validuntil = p.GetXmlProperty("genxml/textbox/validuntil"); var overwrite = p.GetXmlPropertyBool("genxml/checkbox/overwrite"); var disabled = p.GetXmlPropertyBool("genxml/checkbox/disabled"); var lastcalculated = p.GetXmlProperty("genxml/hidden/lastcalculated"); var whichprice = p.GetXmlPropertyInt("genxml/radiobuttonlist/whichprice"); var runfreq = p.GetXmlPropertyInt("genxml/radiobuttonlist/runfreq"); if (!disabled) { var portalsettings = NBrightDNN.DnnUtils.GetPortalSettings(p.PortalId); var lang = portalsettings.DefaultLanguage; var prdList = new List <NBrightInfo>(); if (typeselect == "all") { prdList = objCtrl.GetList(p.PortalId, -1, "PRD"); } else { CategoryData gCat; var groupid = catgroupid; if (typeselect != "cat") { groupid = propgroupid; } gCat = CategoryUtils.GetCategoryData(groupid, lang); if (gCat != null) { prdList = gCat.GetAllArticles(); } } var runcalc = true; if (runfreq == 1 || runfreq == 3) // run freq is date range { if (runfreq == 3) { // run constantly, set end date to +100 year validfrom = DateTime.Now.AddYears(-1).ToString("s"); validuntil = DateTime.Now.AddYears(100).ToString("s"); } // run date range if (Utils.IsDate(lastcalculated)) { if (Convert.ToDateTime(lastcalculated) >= p.ModifiedDate) { runcalc = false; // only run if changed } if (DateTime.Now.Date > Convert.ToDateTime(lastcalculated).Date.AddDays(1)) { runcalc = true; // every day just after midnight. (for site performace) } } if (Utils.IsDate(validuntil)) { if (DateTime.Now.Date > Convert.ToDateTime(validuntil)) { runcalc = true; // need to disable the promo if passed date } } if ((runcalc) && Utils.IsDate(validfrom) && Utils.IsDate(validuntil)) { var dteF = Convert.ToDateTime(validfrom).Date; var dteU = Convert.ToDateTime(validuntil).Date; foreach (var prd in prdList) { var productid = prd.ParentItemId; if (typeselect == "all") { productid = prd.ItemID; } if (DateTime.Now.Date >= dteF && DateTime.Now.Date <= dteU) { // CALC Promo CalcProductSalePrice(p.PortalId, productid, amounttype, amount, p.ItemID, whichprice, overwrite); } if (DateTime.Now.Date > dteU) { // END Promo RemoveProductPromoData(p.PortalId, productid, p.ItemID); } ProductUtils.RemoveProductDataCache(p.PortalId, productid); var productData = ProductUtils.GetProductData(productid, lang); productData.Save(); // recalc any new prices. } if (DateTime.Now.Date > dteU) { // END Promo p.SetXmlProperty("genxml/checkbox/disabled", "True"); } } } if (runfreq == 2) // run Once, do update and disable promo. { foreach (var prd in prdList) { var productid = prd.ParentItemId; if (typeselect == "all") { productid = prd.ItemID; } // CALC Promo CalcProductSalePrice(p.PortalId, productid, amounttype, amount, p.ItemID, whichprice, overwrite); ProductUtils.RemoveProductDataCache(p.PortalId, productid); var productData = ProductUtils.GetProductData(productid, lang); productData.Save(); // recalc any new prices. } p.SetXmlProperty("genxml/checkbox/disabled", "True"); } if (runfreq == 4) // remove { foreach (var prd in prdList) { var productid = prd.ParentItemId; if (typeselect == "all") { productid = prd.ItemID; } RemoveProductPromoData(p.PortalId, productid, p.ItemID); ProductUtils.RemoveProductDataCache(p.PortalId, productid); var productData = ProductUtils.GetProductData(productid, lang); productData.Save(); // recalc any new prices. } p.SetXmlProperty("genxml/checkbox/disabled", "True"); } p.SetXmlProperty("genxml/hidden/lastcalculated", DateTime.Now.AddSeconds(10).ToString("O")); // Add 10 sec to time so we don't get exact clash with update time. objCtrl.Update(p); } return("OK"); }
public static string CalcGroupPromoItem(NBrightInfo p) { var objCtrl = new NBrightBuyController(); var typeselect = p.GetXmlProperty("genxml/radiobuttonlist/typeselect"); var catgroupid = p.GetXmlProperty("genxml/dropdownlist/catgroupid"); var propgroupid = p.GetXmlProperty("genxml/dropdownlist/propgroupid"); var promoname = p.GetXmlProperty("genxml/textbox/name"); var amounttype = p.GetXmlProperty("genxml/radiobuttonlist/amounttype"); var amount = p.GetXmlPropertyDouble("genxml/textbox/amount"); var validfrom = p.GetXmlProperty("genxml/textbox/validfrom"); var validuntil = p.GetXmlProperty("genxml/textbox/validuntil"); var overwrite = p.GetXmlPropertyBool("genxml/checkbox/overwrite"); var disabled = p.GetXmlPropertyBool("genxml/checkbox/disabled"); var lastcalculated = p.GetXmlProperty("genxml/hidden/lastcalculated"); if (!disabled) { var runcalc = true; if (Utils.IsDate(lastcalculated)) { if (Convert.ToDateTime(lastcalculated) >= p.ModifiedDate) { runcalc = false; // only run if changed } if (DateTime.Now.Date > Convert.ToDateTime(lastcalculated).Date.AddDays(1)) { runcalc = true; // every day just after midnight. (for site performace) } } if (Utils.IsDate(validuntil)) { if (DateTime.Now.Date > Convert.ToDateTime(validuntil)) { runcalc = true; // need to disable the promo if passed date } } if ((runcalc) && Utils.IsDate(validfrom) && Utils.IsDate(validuntil)) { var dteF = Convert.ToDateTime(validfrom).Date; var dteU = Convert.ToDateTime(validuntil).Date; CategoryData gCat; var groupid = catgroupid; if (typeselect != "cat") { groupid = propgroupid; } gCat = CategoryUtils.GetCategoryData(groupid, Utils.GetCurrentCulture()); var prdList = gCat.GetAllArticles(); foreach (var prd in prdList) { if (DateTime.Now.Date >= dteF && DateTime.Now.Date <= dteU) { // CALC Promo CalcProductSalePrice(p.PortalId, prd.ParentItemId, amounttype, amount, promoname, p.ItemID, overwrite, dteF, dteU); } if (DateTime.Now.Date > dteU) { // END Promo RemoveProductPromoData(p.PortalId, prd.ParentItemId, p.ItemID); p.SetXmlProperty("genxml/checkbox/disabled", "True"); objCtrl.Update(p); } ProductUtils.RemoveProductDataCache(p.PortalId, prd.ParentItemId); } p.SetXmlProperty("genxml/hidden/lastcalculated", DateTime.Now.AddSeconds(10).ToString("O")); // Add 10 sec to time so we don't get exact clash with update time. objCtrl.Update(p); } } return("OK"); }