/// <summary> /// Gets a collection of <see cref="ProductVariantDetachedContent"/> from examine result. /// </summary> /// <param name="result"> /// The result. /// </param> /// <param name="alias"> /// The alias. /// </param> /// <returns> /// The <see cref="IEnumerable{ProductVariantDetachedContentDispaly}"/>. /// </returns> private static IEnumerable <ProductVariantDetachedContentDisplay> GetProductVariantDetachedContentDisplayCollection(SearchResult result, string alias) { if (!result.Fields.ContainsKey(alias)) { return(Enumerable.Empty <ProductVariantDetachedContentDisplay>()); } var jarray = JArray.Parse(result.Fields[alias]); var contents = new List <ProductVariantDetachedContentDisplay>(); // ReSharper disable once LoopCanBeConvertedToQuery foreach (var j in jarray) { var jtoken = JObject.Parse(j.ToString()); var contentType = jtoken.GetValue("DetachedContentType").ToObject <DetachedContentType>(); var dataValues = jtoken.GetValue("DetachedDataValues").ToObject <IEnumerable <KeyValuePair <string, string> > >(); var pvdc = new ProductVariantDetachedContent(jtoken.GetValue("ProductVariantKey").ToObject <Guid>(), contentType, j.Value <string>("CultureName"), new DetachedDataValuesCollection(dataValues)) { Key = jtoken.GetValue("Key").ToObject <Guid>(), Slug = jtoken.SelectToken("Slug").ToString(), TemplateId = (int)j.SelectToken("TemplateId"), CanBeRendered = bool.Parse(jtoken.SelectToken("CanBeRendered").ToString()), CreateDate = contentType.CreateDate, UpdateDate = contentType.UpdateDate }; contents.Add(pvdc.ToProductVariantDetachedContentDisplay()); } return(contents); }