Ejemplo n.º 1
0
        /// <summary>
        /// Search click event handler.
        /// </summary>
        public override void Search()
        {
            var options = this.CreateSearchOptions();

            var settingsResolver = Context.Entity.Resolve <SiteSettingsResolver>();
            BusinessCatalogSettings settings;

            var provider = Context.Entity.Resolve <Ecommerce.Search.ISearchProvider>();

            try
            {
                settings = settingsResolver.GetSiteSettings(this.View.CurrentItemUri);
            }
            catch (InvalidOperationException ex)
            {
                Log.Error("Unable to resolve Business Catalog settings.", ex, this);
                return;
            }

            options.SearchRoot = settings.ProductsLink;

            base.Search(options);

            if (this.CatalogSettings.ProductIDs.Count <= 0)
            {
                return;
            }

            var builder = new ItemIDListQueryBuilder(this.CatalogSettings.ProductIDs);

            var converter = new ItemResultDataConverter();

            using (new LanguageSwitcher(this.View.CurrentItemUri.Language))
            {
                var arrangedProducts = this.CatalogSettings.ProductIDs.Join(provider.Search(builder.GetResultQuery()), productId => productId, productItem => productItem.ID.ToString(), (productId, productItem) => productItem);
                var data             = converter.Convert(arrangedProducts, this.ProductCatalog.GetGridColumns());
                this.View.FillSelectedProductsGrid(data);
            }
        }
        /// <summary>
        /// Search click event handler.
        /// </summary>
        public override void Search()
        {
            var options = this.CreateSearchOptions();

              var settingsResolver = Context.Entity.Resolve<SiteSettingsResolver>();
              BusinessCatalogSettings settings;

              var provider = Context.Entity.Resolve<Ecommerce.Search.ISearchProvider>();

              try
              {
            settings = settingsResolver.GetSiteSettings(this.View.CurrentItemUri);
              }
              catch (InvalidOperationException ex)
              {
            Log.Error("Unable to resolve Business Catalog settings.", ex, this);
            return;
              }

              options.SearchRoot = settings.ProductsLink;

              base.Search(options);

              if (this.CatalogSettings.ProductIDs.Count <= 0)
              {
            return;
              }

              var builder = new ItemIDListQueryBuilder(this.CatalogSettings.ProductIDs);

              var converter = new ItemResultDataConverter();
              using (new LanguageSwitcher(this.View.CurrentItemUri.Language))
              {
            var arrangedProducts = this.CatalogSettings.ProductIDs.Join(provider.Search(builder.GetResultQuery()), productId => productId, productItem => productItem.ID.ToString(), (productId, productItem) => productItem);
            var data = converter.Convert(arrangedProducts, this.ProductCatalog.GetGridColumns());
            this.View.FillSelectedProductsGrid(data);
              }
        }