/// <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);
        }