/// <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); }
public Task EndReadChanges(ReadChangedProductsSession session) { return(Task.Run(() => Runtime.Client.ProductManager.Create(CommerceRuntimeManager.Runtime).EndReadChangedProducts(session))); }