/// <summary> /// Invokes the Real-time service to get commerce lists from AX. /// </summary> /// <param name="request">The request.</param> /// <returns>Returns the response that contains the result.</returns> private static GetCommerceListRealtimeResponse GetCommerceLists(GetCommerceListRealtimeRequest request) { TransactionServiceClient transactionService = new TransactionServiceClient(request.RequestContext); var clists = transactionService.GetCommerceLists(request.Id, request.CustomerAccountNumber, request.FavoriteFilter, request.PublicFilter); return(new GetCommerceListRealtimeResponse(clists)); }
/// <summary> /// Gets the commerce lists specified by the request. /// </summary> /// <param name="request">The request.</param> /// <returns><see cref="GetCommerceListResponse"/>Object containing the commerce lists.</returns> protected override GetCommerceListResponse Process(GetCommerceListRequest request) { ThrowIf.Null(request, "request"); ThrowIf.Null(request.RequestContext, "request.RequestContext"); // Async customers do not have commerce lists. if (this.IsAsyncCustomer(request.RequestContext, request.CustomerAccountNumber)) { return(new GetCommerceListResponse(PagedResult <CommerceList> .Empty())); } // Employee can read any commerce lists. // Customer can only read lists owned by him or shared to him. // Anonymous is not allowed to read commerce lists. ICommercePrincipal principal = request.RequestContext.GetPrincipal(); if (principal.IsAnonymous) { throw new NotSupportedException("Anonymous is not allowed to read commerce lists."); } else if (principal.IsCustomer) { request.CustomerAccountNumber = principal.UserId; } // Form a request and get the response GetCommerceListRealtimeRequest serviceRequest = new GetCommerceListRealtimeRequest { Id = request.Id, CustomerAccountNumber = request.CustomerAccountNumber, FavoriteFilter = request.FavoriteFilter, PublicFilter = request.PublicFilter, QueryResultSettings = request.QueryResultSettings }; GetCommerceListRealtimeResponse serviceResponse = this.Context.Execute <GetCommerceListRealtimeResponse>(serviceRequest); return(new GetCommerceListResponse(serviceResponse.Clists)); }