/// <summary>
        /// Sorts the order applied.
        /// </summary>
        /// <param name="storefront">The storefront.</param>
        /// <param name="sortKey">The sort key.</param>
        /// <param name="sortDirection">The sort direction.</param>
        /// <returns>The manager response.</returns>
        public virtual ManagerResponse <CatalogResult, bool> SortOrderApplied([NotNull] CommerceStorefront storefront, string sortKey, CommerceConstants.SortDirection?sortDirection)
        {
            Assert.ArgumentNotNull(storefront, "storefront");

            Commerce.Entities.Catalog.SortDirection connectSortDirection = Commerce.Entities.Catalog.SortDirection.Ascending;
            if (sortDirection.HasValue)
            {
                switch (sortDirection.Value)
                {
                case CommerceConstants.SortDirection.Asc:
                    connectSortDirection = Commerce.Entities.Catalog.SortDirection.Ascending;
                    break;

                default:
                    connectSortDirection = Commerce.Entities.Catalog.SortDirection.Descending;
                    break;
                }
            }

            var request = new ProductSortingRequest(storefront.ShopName, sortKey, connectSortDirection);
            var result  = this.CatalogServiceProvider.ProductSorting(request);

            if (!result.Success)
            {
                Helpers.LogSystemMessages(result.SystemMessages, result);
            }

            return(new ManagerResponse <CatalogResult, bool>(result, result.Success));
        }
Exemple #2
0
        public ManagerResponse <CatalogResult, bool> SortOrderApplied(string sortKey, SortDirection?sortDirection)
        {
            var connectSortDirection = SortDirection.Ascending;

            if (sortDirection.HasValue)
            {
                switch (sortDirection.Value)
                {
                case SortDirection.Ascending:
                    connectSortDirection = SortDirection.Ascending;
                    break;

                case SortDirection.Descending:
                    connectSortDirection = SortDirection.Descending;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            if (StorefrontContext.Current == null)
            {
                throw new InvalidOperationException("Cannot be called without a valid storefront context.");
            }

            var request = new ProductSortingRequest(StorefrontContext.Current.ShopName, sortKey, connectSortDirection == SortDirection.Ascending ? Sitecore.Commerce.Entities.Catalog.SortDirection.Ascending : Sitecore.Commerce.Entities.Catalog.SortDirection.Descending);
            var result  = CatalogServiceProvider.ProductSorting(request);

            result.WriteToSitecoreLog();

            return(new ManagerResponse <CatalogResult, bool>(result, result.Success));
        }