/// <summary>
            /// Fetch the superset of discount trade agreements which could apply to all of these items and customer for the given dates.
            /// </summary>
            /// <param name="itemIds">The item Ids to fetch for agreements for.</param>
            /// <param name="customerAccount">Optional. Customer account number to search by.</param>
            /// <param name="minActiveDate">The earliest inclusive active date to search by. Must be less than or equal to maxActiveDate.</param>
            /// <param name="maxActiveDate">The latest inclusive active date to search by. Must be greater than or equal to minActiveDate.</param>
            /// <param name="currencyCode">Currency code to filter by.</param>
            /// <param name="settings">The query result settings.</param>
            /// <returns>Collection of trade agreements which may be applied to the given items of type ReadOnlyCollection&lt;TradeAgreement&gt;.</returns>
            public object ReadDiscountTradeAgreements(
                object itemIds,
                string customerAccount,
                DateTimeOffset minActiveDate,
                DateTimeOffset maxActiveDate,
                string currencyCode,
                QueryResultSettings settings)
            {
                ISet <string> itemIdSet = itemIds as ISet <string>;

                using (SimpleProfiler profiler = new SimpleProfiler("ReadDiscountTradeAgreements", 1))
                {
                    var dataRequest = new ReadDiscountTradeAgreementsDataRequest(
                        itemIdSet,
                        customerAccount,
                        minActiveDate,
                        maxActiveDate,
                        currencyCode);
                    dataRequest.QueryResultSettings = settings;
                    return(this.ExecuteDataService <TradeAgreement>(dataRequest));
                }
            }
            private EntityDataServiceResponse <TradeAgreement> ReadDiscountTradeAgreements(ReadDiscountTradeAgreementsDataRequest request)
            {
                var pricingSqlDataManager = this.GetDataManagerInstance(request.RequestContext);

                var retailDiscountTradeAgreements = pricingSqlDataManager.ReadDiscountTradeAgreements(
                    request.ItemId,
                    request.CustomerAccount,
                    request.MinActiveDate,
                    request.MaxActiveDate,
                    request.CurrencyCode);

                return(new EntityDataServiceResponse <TradeAgreement>(retailDiscountTradeAgreements.AsPagedResult()));
            }