/// <summary>
            /// Executes the workflow to retrieve changed products.
            /// </summary>
            /// <param name="request">The request.</param>
            /// <returns>The response.</returns>
            protected override BeginReadChangedProductsResponse Process(BeginReadChangedProductsRequest request)
            {
                ThrowIf.Null(request, "request");

                long channelId = this.Context.GetPrincipal().ChannelId;

                if (request.SearchCriteria.Context.IsRemoteLookup(channelId))
                {
                    string message = string.Format(
                        CultureInfo.InvariantCulture,
                        "The specified context (Channel={0}, Catalog={1}) is not supported when retrieving changed products.",
                        request.SearchCriteria.Context.ChannelId,
                        request.SearchCriteria.Context.CatalogId);

                    throw new NotSupportedException(message);
                }

                BeginReadChangedProductsDataRequest dataRequest = new BeginReadChangedProductsDataRequest(request.SearchCriteria);
                ReadChangedProductsSession          session     = this.Context.Runtime.Execute <SingleEntityDataServiceResponse <ReadChangedProductsSession> >(dataRequest, this.Context).Entity;

                BeginReadChangedProductsResponse response = new BeginReadChangedProductsResponse(session);

                return(response);
            }
Example #2
0
 public Task EndReadChanges(ReadChangedProductsSession session)
 {
     return(Task.Run(() => Runtime.Client.ProductManager.Create(CommerceRuntimeManager.Runtime).EndReadChangedProducts(session)));
 }