/// <summary> /// Computes the value. /// </summary> /// <param name="indexable">The indexable.</param> /// <returns>The computed value. In this case we return serialized JSON.</returns> public override object ComputeValue(ContentSearch.IIndexable indexable) { Assert.ArgumentNotNull(indexable, "indexable"); var validatedItem = GetValidatedItem(indexable); if (validatedItem == null) { return(string.Empty); } List <string> childCategoryItemList = new List <string>(); Category category = this.GetCategoryReadOnly(validatedItem.ID, validatedItem.Language.Name); if (category != null) { if (category.ChildCategories != null && category.ChildCategories.Count > 0) { foreach (var childCategory in category.ChildCategories) { childCategoryItemList.Add(childCategory.ExternalId.ToString()); } } } return(childCategoryItemList); }
/// <summary> /// Computes the value. /// </summary> /// <param name="indexable">The indexable.</param> /// <returns>The computed value. In this case we return serialized JSON.</returns> public override object ComputeValue(ContentSearch.IIndexable indexable) { Assert.ArgumentNotNull(indexable, "indexable"); var validatedItem = GetValidatedItem(indexable); if (validatedItem == null) { return(string.Empty); } List <VariantIndexInfo> variantInfoList = new List <VariantIndexInfo>(); foreach (var productVariant in this.GetChildVariantsReadOnly(validatedItem.ID, validatedItem.Language.Name)) { var variantInfo = new VariantIndexInfo(); variantInfo.VariantId = this.GetVariantFieldValue <string>(productVariant, "VariantId"); variantInfo.BasePrice = this.GetVariantFieldValue <decimal>(productVariant, "BasePriceVariant"); variantInfo.ListPrice = productVariant.ListPrice; variantInfoList.Add(variantInfo); } return(JsonConvert.SerializeObject(variantInfoList)); }
/// <summary> /// Computes the value. /// </summary> /// <param name="indexable">The indexable.</param> /// <returns>The lower cased product id only for product template items.</returns> public override object ComputeValue(ContentSearch.IIndexable indexable) { Assert.ArgumentNotNull(indexable, "indexable"); var validatedItem = GetValidatedItem(indexable); if (validatedItem == null || string.IsNullOrWhiteSpace(validatedItem.Name)) { return(string.Empty); } return(validatedItem.Name.ToLower(CultureInfo.InvariantCulture)); }