本文整理汇总了C#中SmartStore.Core.Domain.Catalog.Product.FormatStockMessage方法的典型用法代码示例。如果您正苦于以下问题:C# Product.FormatStockMessage方法的具体用法?C# Product.FormatStockMessage怎么用?C# Product.FormatStockMessage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SmartStore.Core.Domain.Catalog.Product
的用法示例。
在下文中一共展示了Product.FormatStockMessage方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PrepareProductDetailsPageModel
public ProductDetailsModel PrepareProductDetailsPageModel(
Product product,
bool isAssociatedProduct = false,
ProductBundleItemData productBundleItem = null,
IList<ProductBundleItemData> productBundleItems = null,
NameValueCollection selectedAttributes = null,
NameValueCollection queryData = null)
{
if (product == null)
throw new ArgumentNullException("product");
var model = new ProductDetailsModel
{
Id = product.Id,
Name = product.GetLocalized(x => x.Name),
ShortDescription = product.GetLocalized(x => x.ShortDescription),
FullDescription = product.GetLocalized(x => x.FullDescription),
MetaKeywords = product.GetLocalized(x => x.MetaKeywords),
MetaDescription = product.GetLocalized(x => x.MetaDescription),
MetaTitle = product.GetLocalized(x => x.MetaTitle),
SeName = product.GetSeName(),
ProductType = product.ProductType,
VisibleIndividually = product.VisibleIndividually,
//Manufacturers = _manufacturerService.GetProductManufacturersByProductId(product.Id),
Manufacturers = PrepareManufacturersOverviewModel(_manufacturerService.GetProductManufacturersByProductId(product.Id), null, true),
ReviewCount = product.ApprovedTotalReviews,
DisplayAdminLink = _services.Permissions.Authorize(StandardPermissionProvider.AccessAdminPanel),
//EnableHtmlTextCollapser = Convert.ToBoolean(_settingService.GetSettingByKey<string>("CatalogSettings.EnableHtmlTextCollapser")),
//HtmlTextCollapsedHeight = Convert.ToString(_settingService.GetSettingByKey<string>("CatalogSettings.HtmlTextCollapsedHeight")),
ShowSku = _catalogSettings.ShowProductSku,
Sku = product.Sku,
ShowManufacturerPartNumber = _catalogSettings.ShowManufacturerPartNumber,
DisplayProductReviews = _catalogSettings.ShowProductReviewsInProductDetail,
ManufacturerPartNumber = product.ManufacturerPartNumber,
ShowGtin = _catalogSettings.ShowGtin,
Gtin = product.Gtin,
StockAvailability = product.FormatStockMessage(_localizationService),
HasSampleDownload = product.IsDownload && product.HasSampleDownload,
IsCurrentCustomerRegistered = _services.WorkContext.CurrentCustomer.IsRegistered()
};
// get gift card values from query string
if (queryData != null && queryData.Count > 0)
{
var giftCardItems = queryData.AllKeys
.Where(x => x.EmptyNull().StartsWith("giftcard_"))
.SelectMany(queryData.GetValues, (k, v) => new { key = k, value = v.TrimSafe() });
foreach (var item in giftCardItems)
{
var key = item.key.EmptyNull().ToLower();
if (key.EndsWith("recipientname"))
model.GiftCard.RecipientName = item.value;
else if (key.EndsWith("recipientemail"))
model.GiftCard.RecipientEmail = item.value;
else if (key.EndsWith("sendername"))
model.GiftCard.SenderName = item.value;
else if (key.EndsWith("senderemail"))
model.GiftCard.SenderEmail = item.value;
else if (key.EndsWith("message"))
model.GiftCard.Message = item.value;
}
}
// Back in stock subscriptions
if (product.ManageInventoryMethod == ManageInventoryMethod.ManageStock &&
product.BackorderMode == BackorderMode.NoBackorders &&
product.AllowBackInStockSubscriptions &&
product.StockQuantity <= 0)
{
//out of stock
model.DisplayBackInStockSubscription = true;
model.BackInStockAlreadySubscribed = _backInStockSubscriptionService
.FindSubscription(_services.WorkContext.CurrentCustomer.Id, product.Id, _services.StoreContext.CurrentStore.Id) != null;
}
//template
var templateCacheKey = string.Format(ModelCacheEventConsumer.PRODUCT_TEMPLATE_MODEL_KEY, product.ProductTemplateId);
model.ProductTemplateViewPath = _services.Cache.Get(templateCacheKey, () =>
{
var template = _productTemplateService.GetProductTemplateById(product.ProductTemplateId);
if (template == null)
template = _productTemplateService.GetAllProductTemplates().FirstOrDefault();
return template.ViewPath;
});
IList<ProductBundleItemData> bundleItems = null;
ProductVariantAttributeCombination combination = null;
if (product.ProductType == ProductType.GroupedProduct && !isAssociatedProduct) // associated products
{
var searchContext = new ProductSearchContext
{
OrderBy = ProductSortingEnum.Position,
StoreId = _services.StoreContext.CurrentStore.Id,
ParentGroupedProductId = product.Id,
PageSize = int.MaxValue,
VisibleIndividuallyOnly = false
};
//.........这里部分代码省略.........
示例2: PrepareProductDetailModel
//.........这里部分代码省略.........
if (model.SelectedCombination != null && model.SelectedCombination.IsActive == false)
{
model.IsAvailable = false;
model.StockAvailability = T("Products.Availability.IsNotActive");
}
product.MergeWithCombination(model.SelectedCombination);
// mark explicitly selected as pre-selected
foreach (var attribute in model.ProductVariantAttributes)
{
foreach (var value in attribute.Values)
{
if (selectedAttributeValues.FirstOrDefault(v => v.Id == value.Id) != null)
value.IsPreSelected = true;
if (!_catalogSettings.ShowVariantCombinationPriceAdjustment)
value.PriceAdjustment = "";
}
}
}
}
#endregion
#region Properties
if ((productBundleItem != null && !productBundleItem.Item.BundleProduct.BundlePerItemShoppingCart) ||
(product.ManageInventoryMethod == ManageInventoryMethod.ManageStockByAttributes && !hasSelectedAttributesValues))
{
// cases where stock inventory is not functional. determined by what ShoppingCartService.GetStandardWarnings and ProductService.AdjustInventory is not handling.
model.IsAvailable = true;
var hasAttributeCombinations = _services.DbContext.QueryForCollection(product, (Product p) => p.ProductVariantAttributeCombinations).Any();
model.StockAvailability = !hasAttributeCombinations ? product.FormatStockMessage(_localizationService) : "";
}
else if (model.IsAvailable)
{
model.IsAvailable = product.IsAvailableByStock();
model.StockAvailability = product.FormatStockMessage(_localizationService);
}
model.Id = product.Id;
model.Name = product.GetLocalized(x => x.Name);
model.ShowSku = _catalogSettings.ShowProductSku;
model.Sku = product.Sku;
model.ShortDescription = product.GetLocalized(x => x.ShortDescription);
model.FullDescription = product.GetLocalized(x => x.FullDescription);
model.MetaKeywords = product.GetLocalized(x => x.MetaKeywords);
model.MetaDescription = product.GetLocalized(x => x.MetaDescription);
model.MetaTitle = product.GetLocalized(x => x.MetaTitle);
model.SeName = product.GetSeName();
model.ShowManufacturerPartNumber = _catalogSettings.ShowManufacturerPartNumber;
model.ManufacturerPartNumber = product.ManufacturerPartNumber;
model.ShowDimensions = _catalogSettings.ShowDimensions;
model.ShowWeight = _catalogSettings.ShowWeight;
model.ShowGtin = _catalogSettings.ShowGtin;
model.Gtin = product.Gtin;
model.HasSampleDownload = product.IsDownload && product.HasSampleDownload;
model.IsCurrentCustomerRegistered = customer.IsRegistered();
model.IsBasePriceEnabled = product.BasePriceEnabled;
model.BasePriceInfo = product.GetBasePriceInfo(_localizationService, _priceFormatter, _currencyService, _taxService, _priceCalculationService, currency);
model.ShowLegalInfo = _taxSettings.ShowLegalHintsInProductDetails;
model.BundleTitleText = product.GetLocalized(x => x.BundleTitleText);
model.BundlePerItemPricing = product.BundlePerItemPricing;
model.BundlePerItemShipping = product.BundlePerItemShipping;
model.BundlePerItemShoppingCart = product.BundlePerItemShoppingCart;
示例3: PrepareProductDetailsPageModel
protected ProductDetailsModel PrepareProductDetailsPageModel(Product product, bool isAssociatedProduct = false,
ProductBundleItemData productBundleItem = null, IList<ProductBundleItemData> productBundleItems = null, FormCollection selectedAttributes = null)
{
if (product == null)
throw new ArgumentNullException("product");
var model = new ProductDetailsModel()
{
Id = product.Id,
Name = product.GetLocalized(x => x.Name),
ShortDescription = product.GetLocalized(x => x.ShortDescription),
FullDescription = product.GetLocalized(x => x.FullDescription),
MetaKeywords = product.GetLocalized(x => x.MetaKeywords),
MetaDescription = product.GetLocalized(x => x.MetaDescription),
MetaTitle = product.GetLocalized(x => x.MetaTitle),
SeName = product.GetSeName(),
ProductType = product.ProductType,
VisibleIndividually = product.VisibleIndividually,
//Manufacturers = _manufacturerService.GetProductManufacturersByProductId(product.Id), /* codehint: sm-edit */
Manufacturers = PrepareManufacturersOverviewModel(_manufacturerService.GetProductManufacturersByProductId(product.Id)),
ReviewCount = product.ApprovedTotalReviews, /* codehint: sm-add */
DisplayAdminLink = _permissionService.Authorize(StandardPermissionProvider.AccessAdminPanel),
EnableHtmlTextCollapser = Convert.ToBoolean(_settingService.GetSettingByKey<string>("CatalogSettings.EnableHtmlTextCollapser")),
HtmlTextCollapsedHeight = Convert.ToString(_settingService.GetSettingByKey<string>("CatalogSettings.HtmlTextCollapsedHeight")),
ShowSku = _catalogSettings.ShowProductSku,
Sku = product.Sku,
ShowManufacturerPartNumber = _catalogSettings.ShowManufacturerPartNumber,
ManufacturerPartNumber = product.ManufacturerPartNumber,
ShowGtin = _catalogSettings.ShowGtin,
Gtin = product.Gtin,
StockAvailability = product.FormatStockMessage(_localizationService),
HasSampleDownload = product.IsDownload && product.HasSampleDownload,
IsCurrentCustomerRegistered = _workContext.CurrentCustomer.IsRegistered()
};
// Back in stock subscriptions
if (product.ManageInventoryMethod == ManageInventoryMethod.ManageStock &&
product.BackorderMode == BackorderMode.NoBackorders &&
product.AllowBackInStockSubscriptions &&
product.StockQuantity <= 0)
{
//out of stock
model.DisplayBackInStockSubscription = true;
model.BackInStockAlreadySubscribed = _backInStockSubscriptionService
.FindSubscription(_workContext.CurrentCustomer.Id, product.Id, _storeContext.CurrentStore.Id) != null;
}
//template
var templateCacheKey = string.Format(ModelCacheEventConsumer.PRODUCT_TEMPLATE_MODEL_KEY, product.ProductTemplateId);
model.ProductTemplateViewPath = _cacheManager.Get(templateCacheKey, () =>
{
var template = _productTemplateService.GetProductTemplateById(product.ProductTemplateId);
if (template == null)
template = _productTemplateService.GetAllProductTemplates().FirstOrDefault();
return template.ViewPath;
});
IList<ProductBundleItemData> bundleItems = null;
ProductVariantAttributeCombination combination = null;
var combinationImageIds = new List<int>();
if (product.ProductType == ProductType.GroupedProduct && !isAssociatedProduct) // associated products
{
var searchContext = new ProductSearchContext()
{
StoreId = _storeContext.CurrentStore.Id,
ParentGroupedProductId = product.Id,
VisibleIndividuallyOnly = false
};
var associatedProducts = _productService.SearchProducts(searchContext);
foreach (var associatedProduct in associatedProducts)
model.AssociatedProducts.Add(PrepareProductDetailsPageModel(associatedProduct, true));
}
else if (product.ProductType == ProductType.BundledProduct && productBundleItem == null) // bundled items
{
bundleItems = _productService.GetBundleItems(product.Id);
foreach (var itemData in bundleItems.Where(x => x.Item.Product.CanBeBundleItem()))
{
var item = itemData.Item;
var bundledProductModel = PrepareProductDetailsPageModel(item.Product, false, itemData);
bundledProductModel.BundleItem.Id = item.Id;
bundledProductModel.BundleItem.Quantity = item.Quantity;
bundledProductModel.BundleItem.HideThumbnail = item.HideThumbnail;
bundledProductModel.BundleItem.Visible = item.Visible;
bundledProductModel.BundleItem.IsBundleItemPricing = item.BundleProduct.BundlePerItemPricing;
string bundleItemName = item.GetLocalized(x => x.Name);
if (bundleItemName.HasValue())
bundledProductModel.Name = bundleItemName;
string bundleItemShortDescription = item.GetLocalized(x => x.ShortDescription);
if (bundleItemShortDescription.HasValue())
bundledProductModel.ShortDescription = bundleItemShortDescription;
model.BundledItems.Add(bundledProductModel);
}
//.........这里部分代码省略.........