public ProductSearchHelper(HccRequestContext reqContext, HccDbContext context, long siteId)
        {
            _reqContext = reqContext;
            _context    = context;
            _siteId     = siteId;

            _categoryTranslations = context.hcc_CategoryTranslations.
                                    Where(
                it =>
                it.Culture == _reqContext.MainContentCulture || it.Culture == _reqContext.FallbackContentCulture);
            _productTypeTranslations = context.hcc_ProductTypeTranslations.
                                       Where(
                it =>
                it.Culture == _reqContext.MainContentCulture || it.Culture == _reqContext.FallbackContentCulture);
            _propertyChoiceTranslations = context.hcc_ProductPropertyChoiceTranslations.
                                          Where(
                it =>
                it.Culture == _reqContext.MainContentCulture || it.Culture == _reqContext.FallbackContentCulture);

            var productPropertyTranslations = context.hcc_ProductPropertyTranslations.
                                              Where(
                it =>
                it.Culture == _reqContext.MainContentCulture || it.Culture == _reqContext.FallbackContentCulture);

            _productProperties = context.hcc_ProductProperty.Where(pp => pp.DisplayOnSearch).
                                 GroupJoin(productPropertyTranslations, i => i.Id, it => it.ProductPropertyId,
                                           (i, it) => new ProductProperty
            {
                Item            = i,
                ItemTranslation =
                    it.OrderBy(iit => iit.Culture == _reqContext.MainContentCulture ? 1 : 2).FirstOrDefault()
            });

            var productPropertyValueTranslations = context.hcc_ProductPropertyValueTranslations.
                                                   Where(
                it =>
                it.Culture == _reqContext.MainContentCulture || it.Culture == _reqContext.FallbackContentCulture);
            var productPropertyValues = context.hcc_ProductPropertyValue.
                                        GroupJoin(productPropertyValueTranslations, i => i.Id, it => it.ProductPropertyValueId,
                                                  (i, it) => new ProductPropertyValue
            {
                Item            = i,
                ItemTranslation =
                    it.OrderBy(iit => iit.Culture == _reqContext.MainContentCulture ? 1 : 2).FirstOrDefault()
            });

            _propertiesJoin = _productProperties.
                              Join(productPropertyValues, pp => pp.Item.Id, ppv => ppv.Item.PropertyId, (pp, ppv) => new { pp, ppv }).
                              GroupJoin(_context.hcc_ProductTypeXProductProperty, pv => pv.pp.Item.Id, ptp => ptp.PropertyId,
                                        (pv, ptp) => new ProductPropertyJoin {
                pp = pv.pp, ppv = pv.ppv, ptypes = ptp
            });
        }
Example #2
0
 protected override ProductSearchHelper CreateSearchHelper(HccRequestContext reqContext, HccDbContext context,
                                                           long siteId)
 {
     return(new DnnProductSearchHelper(reqContext, context, siteId));
 }
Example #3
0
 public DnnProductSearchHelper(HccRequestContext reqContext, HccDbContext context, long siteId)
     : base(reqContext, context, siteId)
 {
 }
Example #4
0
 protected virtual ProductSearchHelper CreateSearchHelper(HccRequestContext reqContext, HccDbContext context,
                                                          long siteId)
 {
     return(new ProductSearchHelper(reqContext, context, siteId));
 }