本文整理汇总了C#中NBrightInfo.GetXmlProperty方法的典型用法代码示例。如果您正苦于以下问题:C# NBrightInfo.GetXmlProperty方法的具体用法?C# NBrightInfo.GetXmlProperty怎么用?C# NBrightInfo.GetXmlProperty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NBrightInfo
的用法示例。
在下文中一共展示了NBrightInfo.GetXmlProperty方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: IsValid
public override bool IsValid(NBrightInfo cartInfo)
{
// check if this provider is valid for the counrty in the checkout
var shipoption = cartInfo.GetXmlProperty("genxml/extrainfo/genxml/radiobuttonlist/rblshippingoptions");
var countrycode = "";
switch (shipoption)
{
case "1":
countrycode = cartInfo.GetXmlProperty("genxml/billaddress/genxml/dropdownlist/country");
break;
case "2":
countrycode = cartInfo.GetXmlProperty("genxml/shipaddress/genxml/dropdownlist/country");
break;
}
var isValid = true;
var shipData = new ShippingData(Shippingkey);
var validlist = "," + shipData.Info.GetXmlProperty("genxml/textbox/validcountrycodes") + ",";
var notvalidlist = "," + shipData.Info.GetXmlProperty("genxml/textbox/notvalidcountrycodes") + ",";
if (validlist.Trim(',') != "")
{
isValid = false;
if (validlist.Contains("," + countrycode + ",")) isValid = true;
}
if (notvalidlist.Trim(',') != "" && notvalidlist.Contains("," + countrycode + ",")) isValid = false;
return isValid;
}
示例2: AddAddress
/// <summary>
/// Add Adddress
/// </summary>
/// <param name="rpData"></param>
/// <param name="debugMode"></param>
public String AddAddress(Repeater rpData, Boolean debugMode = false)
{
var strXml = GenXmlFunctions.GetGenXml(rpData, "", "");
// load into NBrigthInfo class, so it's easier to get at xml values.
var objInfoIn = new NBrightInfo();
objInfoIn.XMLData = strXml;
var addIndex = objInfoIn.GetXmlProperty("genxml/hidden/index"); // addresses updated from manager should have a index hidden field.
if (addIndex == "") addIndex = objInfoIn.GetXmlProperty("genxml/dropdownlist/selectaddress"); // updated from cart should have a selected address
if (!Utils.IsNumeric(addIndex)) addIndex = "-1"; // assume new address.
var addressIndex = Convert.ToInt32(addIndex);
AddAddress(objInfoIn,addressIndex);
return ""; // if everything is OK, don't send a message back.
}
示例3: UpdatePercentUsage
public override NBrightInfo UpdatePercentUsage(int portalId, int userId, NBrightInfo purchaseInfo)
{
if (userId <= 0) return purchaseInfo;
var discountcode = purchaseInfo.GetXmlProperty("genxml/extrainfo/genxml/textbox/promocode");
if (!purchaseInfo.GetXmlPropertyBool("genxml/discountprocessed"))
{
if (discountcode == "") return purchaseInfo;
var clientData = new ClientData(portalId, userId);
if (clientData.DiscountCodes.Count == 0) return purchaseInfo;
var list = clientData.DiscountCodes;
foreach (var d in list)
{
if (d.GetXmlProperty("genxml/textbox/coderef").ToLower() == discountcode.ToLower())
{
var usageleft = d.GetXmlPropertyDouble("genxml/textbox/usageleft");
var used = d.GetXmlPropertyDouble("genxml/textbox/used");
d.SetXmlPropertyDouble("genxml/textbox/usageleft", (usageleft - 1));
d.SetXmlPropertyDouble("genxml/textbox/used", (used + 1));
}
}
clientData.UpdateDiscountCodeList(list);
clientData.Save();
purchaseInfo.SetXmlProperty("genxml/discountprocessed", "True");
}
return purchaseInfo;
}
示例4: CalculateShipping
public override NBrightInfo CalculateShipping(NBrightInfo cartInfo)
{
var shipData = new ShippingData(Shippingkey);
var shipoption = cartInfo.GetXmlProperty("genxml/extrainfo/genxml/radiobuttonlist/rblshippingoptions");
Double rangeValue = 0;
if (shipData.CalculationUnit == "1")
rangeValue = cartInfo.GetXmlPropertyDouble("genxml/totalweight");
else
rangeValue = cartInfo.GetXmlPropertyDouble("genxml/appliedsubtotal");
var countrycode = "";
var regioncode = "";
var regionkey = "";
var total = cartInfo.GetXmlPropertyDouble("genxml/appliedsubtotal");
switch (shipoption)
{
case "1":
countrycode = cartInfo.GetXmlProperty("genxml/billaddress/genxml/dropdownlist/country");
regionkey = cartInfo.GetXmlProperty("genxml/billaddress/genxml/dropdownlist/region");
break;
case "2":
countrycode = cartInfo.GetXmlProperty("genxml/shipaddress/genxml/dropdownlist/country");
regionkey = cartInfo.GetXmlProperty("genxml/shipaddress/genxml/dropdownlist/region");
break;
}
if (regionkey != "")
{
var rl = regionkey.Split(':');
if (rl.Count() == 2) regioncode = rl[1];
}
var shippingcost = shipData.CalculateShipping(countrycode, regioncode, rangeValue, total);
var shippingdealercost = shippingcost;
cartInfo.SetXmlPropertyDouble("genxml/shippingcost", shippingcost);
cartInfo.SetXmlPropertyDouble("genxml/shippingdealercost", shippingdealercost);
return cartInfo;
}
示例5: UpdateRule
public String UpdateRule(NBrightInfo ruleInfo, Boolean debugMode = false)
{
var addIndex = ruleInfo.GetXmlProperty("genxml/hidden/index");
if (!Utils.IsNumeric(addIndex)) addIndex = "-1"; // assume new .
var ruleIndex = Convert.ToInt32(addIndex);
if (debugMode) ruleInfo.XMLDoc.Save(PortalSettings.Current.HomeDirectoryMapPath + "debug_ruleadd.xml");
if (ruleIndex >= 0)
{
UpdateRule(ruleInfo.XMLData, ruleIndex);
}
else
{
_shippingList.Add(ruleInfo);
}
return ""; // if everything is OK, don't send a message back.
}
示例6: DoImport
private void DoImport(NBrightInfo nbi)
{
var fname = StoreSettings.Current.FolderTempMapPath + "\\" + nbi.GetXmlProperty("genxml/hidden/hiddatafile");
if (System.IO.File.Exists(fname))
{
var xmlFile = new XmlDocument();
try
{
xmlFile.Load(fname);
}
catch (Exception e)
{
Exceptions.LogException(e);
NBrightBuyUtils.SetNotfiyMessage(ModuleId, "xmlloadfail", NotifyCode.fail, ControlPath + "/App_LocalResources/Import.ascx.resx");
return;
}
// Ref old cat id , id new cat
////////////////////////////////////////////////////////////////////////////
Dictionary<string, int> categoryListIDGiud = new Dictionary<string, int>();
Dictionary<int, int> categoryListIDFather = new Dictionary<int, int>();
///////////////////////////////////////////////////////////////////////////
var objCtrl = new NBrightBuyController();
// get all valid languages
var langList = DnnUtils.GetCultureCodeList(PortalId);
foreach (var lang in langList)
{
//Import Categories
#region "categories"
var nodList = xmlFile.SelectNodes("root/categories/" + lang + "/NB_Store_CategoriesInfo");
if (nodList != null)
{
var categoryid = -1;
foreach (XmlNode nod in nodList)
{
try
{
//if category Id exist replage guidKey
var guidKeyNod = nod.SelectSingleNode("CategoryID").InnerText;
if (guidKeyNod != null)
{
var guidKey = guidKeyNod;
categoryid = -1;
// see if category already exists (update if so)
var nbiImport = objCtrl.GetByGuidKey(PortalSettings.Current.PortalId, -1, "CATEGORY", guidKey);
if (nbiImport != null) categoryid = nbiImport.ItemID;
var CategoryData = new CategoryData(categoryid, lang);
// clear down existing XML data
var i = new NBrightInfo(true);
i.PortalId = PortalSettings.Current.PortalId;
CategoryData.DataRecord.XMLData = i.XMLData;
CategoryData.DataLangRecord.XMLData = i.XMLData;
// assign guidkey to legacy productid (guidKey)
CategoryData.DataRecord.GUIDKey = guidKey;
CategoryData.DataRecord.SetXmlProperty("genxml/textbox/txtcategoryref", guidKey);
// do mapping of XML data
// DATA FIELDS
var cD_CategoryID = nod.SelectSingleNode("CategoryID").InnerText;
var cD_PortalID = nod.SelectSingleNode("PortalID").InnerText;
var cD_Archived = nod.SelectSingleNode("Archived").InnerText;
var cD_Hide = nod.SelectSingleNode("Hide").InnerText;
var cD_CreatedByUser = nod.SelectSingleNode("CreatedByUser").InnerText;
var cD_CreatedDate = nod.SelectSingleNode("CreatedDate").InnerText;
var cD_ParentCategoryID = nod.SelectSingleNode("ParentCategoryID").InnerText;
var cD_ListOrder = nod.SelectSingleNode("ListOrder").InnerText;
var cD_Lang = nod.SelectSingleNode("Lang").InnerText;
var cD_ProductCount = nod.SelectSingleNode("ProductCount").InnerText;
var cD_ProductTemplate = nod.SelectSingleNode("ProductTemplate").InnerText;
var cD_ListItemTemplate = nod.SelectSingleNode("ListItemTemplate").InnerText;
var cD_ListAltItemTemplate = nod.SelectSingleNode("ListAltItemTemplate").InnerText;
var cD_ImageURL = nod.SelectSingleNode("ImageURL").InnerText;
// DATA LANG FIELDS
var cL_CategoryName = nod.SelectSingleNode("CategoryName").InnerText;
var cL_ParentName = nod.SelectSingleNode("ParentName").InnerText;
var cL_CategoryDesc = nod.SelectSingleNode("CategoryDesc").InnerText;
var cL_Message = nod.SelectSingleNode("Message").InnerText;
var cL_SEOPageTitle = nod.SelectSingleNode("SEOPageTitle").InnerText;
var cL_SEOName = nod.SelectSingleNode("SEOName").InnerText;
var cL_MetaDescription = nod.SelectSingleNode("MetaDescription").InnerText;
var cL_MetaKeywords = nod.SelectSingleNode("MetaKeywords").InnerText;
// Populate DATA CATEGORY
CategoryData.DataRecord.SetXmlProperty("genxml/hidden/recordsortorder", cD_ListOrder);
CategoryData.DataRecord.SetXmlProperty("genxml/checkbox/chkishidden", cD_Hide);
CategoryData.DataRecord.SetXmlProperty("genxml/checkbox/chkdisable", "False");
CategoryData.DataRecord.SetXmlProperty("genxml/dropdownlist/ddlgrouptype", "cat");
if (cD_ParentCategoryID != null && cD_ParentCategoryID != "0") CategoryData.DataRecord.SetXmlProperty("genxml/dropdownlist/ddlparentcatid", cD_ParentCategoryID);
//.........这里部分代码省略.........
示例7: GetItemIndex
public int GetItemIndex(String itemCode)
{
var xmlNodeList = PurchaseInfo.XMLDoc.SelectNodes("genxml/items/*");
if (xmlNodeList != null)
{
var lp = 0;
foreach (XmlNode carNod in xmlNodeList)
{
var newInfo = new NBrightInfo { XMLData = carNod.OuterXml };
if (newInfo.GetXmlProperty("genxml/itemcode") == itemCode)
{
return lp;
}
lp += 1;
}
}
return -1;
}
示例8: AddSingleItem
public String AddSingleItem(String strproductid, String strmodelId, String strqtyId, NBrightInfo objInfoIn, Boolean debugMode = false, int replaceIndex = -1)
{
if (!Utils.IsNumeric(strqtyId) || Convert.ToInt32(strqtyId) <= 0) return "";
if (StoreSettings.Current.DebugModeFileOut) objInfoIn.XMLDoc.Save(PortalSettings.Current.HomeDirectoryMapPath + "debug_addtobasket.xml");
var objInfo = new NBrightInfo();
objInfo.XMLData = "<genxml></genxml>";
// get productid
if (Utils.IsNumeric(strproductid))
{
var itemcode = ""; // The itemcode var is used to decide if a cart item is new or already existing in the cart.
var productData = ProductUtils.GetProductData(Convert.ToInt32(strproductid), Utils.GetCurrentCulture());
if (productData.Info == null) return ""; // we may have a invalid productid that has been saved by a cookie, but since has been deleted.
var modelInfo = productData.GetModel(strmodelId);
if (modelInfo == null) return ""; // no valid model
objInfo.AddSingleNode("productid", strproductid, "genxml");
itemcode += strproductid + "-";
objInfo.AddSingleNode("modelid", strmodelId, "genxml");
itemcode += strmodelId + "-";
// Get Qty
objInfo.AddSingleNode("qty", strqtyId, "genxml");
#region "Get model and product data"
objInfo.AddSingleNode("productname", productData.Info.GetXmlPropertyRaw("genxml/lang/genxml/textbox/txtproductname"), "genxml");
objInfo.AddSingleNode("summary", productData.Info.GetXmlPropertyRaw("genxml/lang/genxml/textbox/txtsummary"), "genxml");
objInfo.AddSingleNode("modelref", modelInfo.GetXmlPropertyRaw("genxml/textbox/txtmodelref"), "genxml");
objInfo.AddSingleNode("modeldesc", modelInfo.GetXmlPropertyRaw("genxml/lang/genxml/textbox/txtmodelname"), "genxml");
objInfo.AddSingleNode("modelextra", modelInfo.GetXmlPropertyRaw("genxml/lang/genxml/textbox/txtextra"), "genxml");
objInfo.AddSingleNode("unitcost", modelInfo.GetXmlPropertyRaw("genxml/textbox/txtunitcost"), "genxml");
objInfo.AddSingleNode("dealercost", modelInfo.GetXmlPropertyRaw("genxml/textbox/txtdealercost"), "genxml");
objInfo.AddSingleNode("taxratecode", modelInfo.GetXmlPropertyRaw("genxml/dropdownlist/taxrate"), "genxml");
objInfo.AddSingleNode("saleprice", modelInfo.GetXmlPropertyRaw("genxml/textbox/txtsaleprice"), "genxml");
objInfo.AddSingleNode("basecost", modelInfo.GetXmlPropertyRaw("genxml/textbox/txtunitcost"), "genxml");
// flag if dealer
var userInfo = UserController.Instance.GetCurrentUserInfo();
if (userInfo != null && userInfo.IsInRole(StoreSettings.DealerRole) && StoreSettings.Current.Get("enabledealer") == "True")
objInfo.SetXmlProperty("genxml/isdealer", "True");
else
objInfo.SetXmlProperty("genxml/isdealer", "False");
//move all product and model data into cart item, so we can display bespoke fields.
objInfo.AddSingleNode("productxml", productData.Info.XMLData, "genxml");
#endregion
#region "Get option Data"
//build option data for cart
Double additionalCosts = 0;
var strXmlIn = "";
var optionDataList = new Dictionary<String, String>();
if (objInfoIn.XMLDoc != null)
{
var nodList = objInfoIn.XMLDoc.SelectNodes("genxml/textbox/*[starts-with(name(), 'optiontxt')]");
if (nodList != null)
foreach (XmlNode nod in nodList)
{
strXmlIn = "<option>";
var idx = nod.Name.Replace("optiontxt", "");
var optionid = objInfoIn.GetXmlProperty("genxml/hidden/optionid" + idx);
var optionInfo = productData.GetOption(optionid);
var optvaltext = nod.InnerText;
strXmlIn += "<optid>" + optionid + "</optid>";
strXmlIn += "<optvaltext>" + optvaltext + "</optvaltext>";
itemcode += optionid + "-" + Utils.GetUniqueKey() + "-";
strXmlIn += "<optname>" + optionInfo.GetXmlProperty("genxml/lang/genxml/textbox/txtoptiondesc") + "</optname>";
strXmlIn += "</option>";
if (!optionDataList.ContainsKey(idx)) optionDataList.Add(idx, strXmlIn);
}
nodList = objInfoIn.XMLDoc.SelectNodes("genxml/dropdownlist/*[starts-with(name(), 'optionddl')]");
if (nodList != null)
foreach (XmlNode nod in nodList)
{
strXmlIn = "<option>";
var idx = nod.Name.Replace("optionddl", "");
var optionid = objInfoIn.GetXmlProperty("genxml/hidden/optionid" + idx);
var optionvalueid = nod.InnerText;
var optionValueInfo = productData.GetOptionValue(optionid, optionvalueid);
var optionInfo = productData.GetOption(optionid);
strXmlIn += "<optid>" + optionid + "</optid>";
strXmlIn += "<optvalueid>" + optionvalueid + "</optvalueid>";
itemcode += optionid + ":" + optionvalueid + "-";
strXmlIn += "<optname>" + optionInfo.GetXmlProperty("genxml/lang/genxml/textbox/txtoptiondesc") + "</optname>";
strXmlIn += "<optvalcost>" + optionValueInfo.GetXmlProperty("genxml/textbox/txtaddedcost") + "</optvalcost>";
strXmlIn += "<optvaltext>" + optionValueInfo.GetXmlProperty("genxml/lang/genxml/textbox/txtoptionvaluedesc") + "</optvaltext>";
strXmlIn += "</option>";
additionalCosts += optionValueInfo.GetXmlPropertyDouble("genxml/textbox/txtaddedcost");
if (!optionDataList.ContainsKey(idx)) optionDataList.Add(idx, strXmlIn);
}
nodList = objInfoIn.XMLDoc.SelectNodes("genxml/checkbox/*[starts-with(name(), 'optionchk')]");
//.........这里部分代码省略.........
示例9: AddAjaxItem
public String AddAjaxItem(NBrightInfo ajaxInfo, NBrightInfo nbSettings, Boolean debugMode = false)
{
var strproductid = ajaxInfo.GetXmlProperty("genxml/hidden/productid");
// Get ModelID
var modelidlist = new List<String>();
// *************************************
// Do Model List return
var qtylist = new Dictionary<String, String>();
var nodList = ajaxInfo.XMLDoc.SelectNodes("genxml/textbox/*");
if (nodList != null && nodList.Count > 0)
{
foreach (XmlNode nod in nodList)
{
if (nod.Name.StartsWith("selectedmodelqty")) // model list qty textbox has modelid appedix.
{
if (Utils.IsNumeric(nod.InnerText))
{
var fieldid = nod.Name.Replace("selectedmodelqty", "selectedmodelid"); //link to modelid in hidden field
var strmodelId = ajaxInfo.GetXmlProperty("genxml/hidden/" + fieldid);
var strqtyId = nod.InnerText;
if (Utils.IsNumeric(strqtyId))
{
modelidlist.Add(strmodelId);
qtylist.Add(strmodelId, strqtyId);
}
}
}
}
}
// *************************************
// do dropdown and radio return
if (qtylist.Count == 0)
{
var strmodelId = ajaxInfo.GetXmlProperty("genxml/radiobuttonlist/rblmodelsel");
if (strmodelId == "") strmodelId = ajaxInfo.GetXmlProperty("genxml/dropdownlist/ddlmodelsel");
if (strmodelId == "") strmodelId = ajaxInfo.GetXmlProperty("genxml/hidden/modeldefault");
if (strmodelId == "")
{
var p = ProductUtils.GetProductData(strproductid,ajaxInfo.Lang);
strmodelId = p.Models[0].GetXmlProperty("genxml/hidden/modelid");
}
modelidlist.Add(strmodelId);
var strqtyId = ajaxInfo.GetXmlProperty("genxml/textbox/selectedaddqty");
if (!Utils.IsNumeric(strqtyId)) strqtyId = "1";
qtylist.Add(strmodelId, strqtyId);
}
var strRtn = "";
foreach (var m in modelidlist)
{
var numberofmodels = 0; // use additemqty field to add multiple items
var additemqty = ajaxInfo.GetXmlProperty("genxml/textbox/additemqty");
if (Utils.IsNumeric(additemqty))
numberofmodels = Convert.ToInt32(additemqty); // zero should be allowed on add all to basket option.
else
numberofmodels = 1; // if we have no numeric, assume we need to add it
for (var i = 1; i <= numberofmodels; i++)
{
strRtn += AddSingleItem(strproductid, m, qtylist[m], ajaxInfo, debugMode);
}
}
return strRtn;
}
示例10: BuildModelList
private List<NBrightInfo> BuildModelList(NBrightInfo dataItemObj,Boolean addSalePrices = false)
{
// see if we have a cart record
var xpathprefix = "";
var cartrecord = dataItemObj.GetXmlProperty("genxml/productid") != ""; // if we have a productid node, then is datarecord is a cart item
if (cartrecord) xpathprefix = "genxml/productxml/";
//build models list
var objL = new List<NBrightInfo>();
var nodList = dataItemObj.XMLDoc.SelectNodes(xpathprefix + "genxml/models/*");
if (nodList != null)
{
#region "Init"
var isDealer = CmsProviderManager.Default.IsInRole(StoreSettings.DealerRole);
#endregion
var lp = 1;
foreach (XmlNode nod in nodList)
{
// check if Deleted
var selectDeletedFlag = nod.SelectSingleNode("checkbox/chkdeleted");
if ((selectDeletedFlag == null) || selectDeletedFlag.InnerText != "True")
{
// check if hidden
var selectHiddenFlag = nod.SelectSingleNode("checkbox/chkishidden");
if ((selectHiddenFlag == null) || selectHiddenFlag.InnerText != "True")
{
// check if dealer
var selectDealerFlag = nod.SelectSingleNode("checkbox/chkdealeronly");
if (((selectDealerFlag == null) || (!isDealer && (selectDealerFlag.InnerText != "True"))) | isDealer)
{
// get modelid
var nodModelId = nod.SelectSingleNode("hidden/modelid");
var modelId = "";
if (nodModelId != null) modelId = nodModelId.InnerText;
//Build NBrightInfo class for model
var o = new NBrightInfo();
o.XMLData = nod.OuterXml;
#region "Add Lanaguge Data"
var nodLang = dataItemObj.XMLDoc.SelectSingleNode(xpathprefix + "genxml/lang/genxml/models/genxml[" + lp.ToString("") + "]");
if (nodLang != null)
{
o.AddSingleNode("lang", "", "genxml");
o.AddXmlNode(nodLang.OuterXml, "genxml", "genxml/lang");
}
#endregion
#region "Prices"
if (addSalePrices)
{
var uInfo = UserController.GetCurrentUserInfo();
if (uInfo != null)
{
o.SetXmlPropertyDouble("genxml/hidden/saleprice", "-1"); // set to -1 so unitcost is displayed (turns off saleprice)
//[TODO: convert to new promotion provider]
//var objPromoCtrl = new PromoController();
//var objPCtrl = new ProductController();
//var objM = objPCtrl.GetModel(modelId, Utils.GetCurrentCulture());
//var salePrice = objPromoCtrl.GetSalePrice(objM, uInfo);
//o.AddSingleNode("saleprice", salePrice.ToString(CultureInfo.GetCultureInfo("en-US")), "genxml/hidden");
}
}
#endregion
// product data for display in modellist
o.SetXmlProperty("genxml/lang/genxml/textbox/txtproductname", dataItemObj.GetXmlProperty(xpathprefix + "genxml/lang/genxml/textbox/txtproductname"));
o.SetXmlProperty("genxml/textbox/txtproductref", dataItemObj.GetXmlProperty(xpathprefix + "genxml/textbox/txtproductref"));
if (cartrecord)
o.SetXmlProperty("genxml/hidden/productid", dataItemObj.GetXmlProperty("genxml/productid"));
else
o.SetXmlProperty("genxml/hidden/productid", dataItemObj.ItemID.ToString(""));
objL.Add(o);
}
}
}
lp += 1;
}
}
return objL;
}
示例11: ValidateCartItem
private NBrightInfo ValidateCartItem(int portalId, int userId, NBrightInfo cartItemInfo)
{
cartItemInfo = NBrightBuyUtils.ProcessEventProvider(EventActions.ValidateCartItemBefore, cartItemInfo);
var modelid = cartItemInfo.GetXmlProperty("genxml/modelid");
var prdid = cartItemInfo.GetXmlPropertyInt("genxml/productid");
var qty = cartItemInfo.GetXmlPropertyDouble("genxml/qty");
var prd = ProductUtils.GetProductData(prdid, Utils.GetCurrentCulture());
if (!prd.Exists || prd.Disabled) return null; //Invalid product remove from cart
var prdModel = prd.GetModel(modelid);
if (prdModel == null) return null; // Invalid Model remove from cart
// check if dealer (for tax calc)
var userInfo = UserController.GetUserById(portalId, userId);
if (userInfo != null && userInfo.IsInRole(StoreSettings.DealerRole) && StoreSettings.Current.Get("enabledealer") == "True")
cartItemInfo.SetXmlProperty("genxml/isdealer", "True");
else
cartItemInfo.SetXmlProperty("genxml/isdealer", "False");
// check for price change
var unitcost = prdModel.GetXmlPropertyDouble("genxml/textbox/txtunitcost");
var dealercost = prdModel.GetXmlPropertyDouble("genxml/textbox/txtdealercost");
var saleprice = prdModel.GetXmlPropertyDouble("genxml/textbox/txtsaleprice");
// calc sale price
var sellcost = unitcost;
if (saleprice > 0 && saleprice < sellcost) sellcost = saleprice;
//stock control
if (prdModel != null)
{
var stockon = prdModel.GetXmlPropertyBool("genxml/checkbox/chkstockon");
var stocklevel = prdModel.GetXmlPropertyDouble("genxml/textbox/txtqtyremaining");
var minStock = prdModel.GetXmlPropertyDouble("genxml/textbox/txtqtyminstock");
if (minStock == 0) minStock = StoreSettings.Current.GetInt("minimumstocklevel");
var maxStock = prdModel.GetXmlPropertyDouble("genxml/textbox/txtqtystockset");
var weight = prdModel.GetXmlPropertyDouble("genxml/textbox/weight");
if (stockon)
{
stocklevel = stocklevel - minStock;
stocklevel = stocklevel - prd.GetModelTransQty(modelid, _cartId);
if (stocklevel < qty)
{
qty = stocklevel;
if (qty <= 0)
{
qty = 0;
cartItemInfo.SetXmlProperty("genxml/validatecode", "OUTOFSTOCK");
}
else
{
cartItemInfo.SetXmlProperty("genxml/validatecode", "STOCKADJ");
}
base.SetValidated(false);
cartItemInfo.SetXmlPropertyDouble("genxml/qty", qty.ToString(""));
}
}
Double additionalCosts = 0;
var optNods = cartItemInfo.XMLDoc.SelectNodes("genxml/options/*");
if (optNods != null)
{
var lp = 1;
foreach (XmlNode nod in optNods)
{
var optid = nod.SelectSingleNode("optid");
if (optid != null)
{
var optvalueid = nod.SelectSingleNode("optvalueid");
if (optvalueid != null && optvalueid.InnerText != "False")
{
XmlNode optvalcostnod;
if (optvalueid.InnerText == "True")
optvalcostnod = cartItemInfo.XMLDoc.SelectSingleNode("genxml/productxml/genxml/optionvalues[@optionid='" + optid.InnerText + "']/genxml/textbox/txtaddedcost");
else
optvalcostnod = cartItemInfo.XMLDoc.SelectSingleNode("genxml/productxml/genxml/optionvalues/genxml[./hidden/optionvalueid='" + optvalueid.InnerText + "']/textbox/txtaddedcost");
if (optvalcostnod != null)
{
var optvalcost = optvalcostnod.InnerText;
if (Utils.IsNumeric(optvalcost))
{
cartItemInfo.SetXmlPropertyDouble("genxml/options/option[" + lp + "]/optvalcost", optvalcost);
var optvaltotal = Convert.ToDouble(optvalcost, CultureInfo.GetCultureInfo("en-US"))*qty;
cartItemInfo.SetXmlPropertyDouble("genxml/options/option[" + lp + "]/optvaltotal", optvaltotal);
additionalCosts += optvaltotal;
}
}
else
{
cartItemInfo.SetXmlPropertyDouble("genxml/options/option[" + lp + "]/optvalcost", "0");
cartItemInfo.SetXmlPropertyDouble("genxml/options/option[" + lp + "]/optvaltotal", "0");
}
}
}
lp += 1;
}
}
if (qty > 0) // can't devide by zero
//.........这里部分代码省略.........
示例12: UpdateCartInfo
private void UpdateCartInfo()
{
//update items
foreach (RepeaterItem i in rpData.Items)
{
var strXml = GenXmlFunctions.GetGenXml(i);
var cInfo = new NBrightInfo();
cInfo.XMLData = strXml;
_cartInfo.MergeCartInputData(cInfo.GetXmlProperty("genxml/hidden/itemcode"), cInfo);
}
//update data
_cartInfo.AddExtraInfo(rpExtra);
_cartInfo.AddShipData(rpShip);
}
示例13: UpdateRecord
private void UpdateRecord()
{
var xmlData = GenXmlFunctions.GetGenXml(rpData, "", StoreSettings.Current.FolderImagesMapPath);
var objInfo = new NBrightInfo();
objInfo.ItemID = -1;
objInfo.TypeCode = "POSTDATA";
objInfo.XMLData = xmlData;
var settings = objInfo.ToDictionary(); // put the fieds into a dictionary, so we can get them easy.
var strOut = "No Category ID ('itemid' hidden fields needed on input form)";
if (settings.ContainsKey("itemid"))
{
var catData = CategoryUtils.GetCategoryData(Convert.ToInt32(settings["itemid"]), StoreSettings.Current.EditLanguage);
catData.Update(objInfo);
if (!String.IsNullOrEmpty(Edittype) && Edittype.ToLower() == "group")
{
var grptype = objInfo.GetXmlProperty("genxml/dropdownlist/ddlparentcatid");
var grp = ModCtrl.GetByGuidKey(PortalSettings.PortalId, -1, "GROUP", grptype);
if (grp != null)
{
var newGuidKey = objInfo.GetXmlProperty("genxml/textbox/propertyref");
if (newGuidKey != "") newGuidKey = GetUniqueGuidKey(catData.CategoryId, Utils.UrlFriendly(newGuidKey));
catData.DataRecord.GUIDKey = newGuidKey;
catData.DataRecord.SetXmlProperty("genxml/textbox/txtcategoryref", newGuidKey);
catData.DataRecord.ParentItemId = grp.ItemID;
// list done using ddlgrouptype, in GetCatList
catData.DataRecord.SetXmlProperty("genxml/dropdownlist/ddlgrouptype", grptype);
catData.Save();
NBrightBuyUtils.RemoveModCachePortalWide(PortalId);
}
}
else
{
// the base category ref cannot have language dependant refs, we therefore just use a unique key
var catref = catData.DataRecord.GetXmlProperty("genxml/textbox/txtcategoryref");
if (catref == "")
{
if (catData.DataRecord.GUIDKey == "")
{
catref = Utils.GetUniqueKey().ToLower();
catData.DataRecord.SetXmlProperty("genxml/textbox/txtcategoryref", catref);
catData.DataRecord.GUIDKey = catref;
}
else
{
catData.DataRecord.SetXmlProperty("genxml/textbox/txtcategoryref", catData.DataRecord.GUIDKey);
}
}
catData.Save();
CategoryUtils.ValidateLangaugeRef(PortalId, Convert.ToInt32(settings["itemid"])); // do validate so we update all refs and children refs
NBrightBuyUtils.RemoveModCachePortalWide(PortalId);
}
}
else
{
NBrightBuyUtils.SetNotfiyMessage(ModuleId, "categoryactionsave", NotifyCode.fail);
}
NBrightBuyUtils.RemoveModCachePortalWide(PortalId); //clear any cache
}
示例14: UpdateImages
public void UpdateImages(NBrightInfo info)
{
var strAjaxXml = info.GetXmlProperty("genxml/hidden/xmlupdateproductimages");
strAjaxXml = GenXmlFunctions.DecodeCDataTag(strAjaxXml);
var imgList = NBrightBuyUtils.GetGenXmlListByAjax(strAjaxXml, "");
UpdateImages(imgList);
//add new image if uploaded
var imgFile = info.GetXmlProperty("genxml/hidden/hidimage");
if (imgFile != "")
{
AddNewImage(_storeSettings.FolderImages.TrimEnd('/') + "/" + imgFile, _storeSettings.FolderImagesMapPath.TrimEnd('\\') + "\\" + imgFile);
}
}
示例15: UpdateDocs
public void UpdateDocs(NBrightInfo info)
{
var strAjaxXml = info.GetXmlProperty("genxml/hidden/xmlupdateproductdocs");
strAjaxXml = GenXmlFunctions.DecodeCDataTag(strAjaxXml);
var docList = NBrightBuyUtils.GetGenXmlListByAjax(strAjaxXml, "");
UpdateDocs(docList);
//add new doc if uploaded
var docFile = info.GetXmlProperty("genxml/hidden/hiddocument");
if (docFile != "")
{
var postedFile = info.GetXmlProperty("genxml/hidden/posteddocumentname");
AddNewDoc(_storeSettings.FolderDocumentsMapPath.TrimEnd('\\') + "\\" + docFile, postedFile);
}
}