コード例 #1
0
            /// <summary>
            /// Gets the discount codes from pricing services.
            /// </summary>
            /// <param name="request">The request.</param>
            /// <returns>The response.</returns>
            protected override GetDiscountCodesResponse Process(GetDiscountCodesRequest request)
            {
                ThrowIf.Null(request, "request");
                ThrowIf.Null(request.QueryResultSettings, "request.QueryResultSettings");

                // Create service request.
                var serviceRequest = new GetDiscountCodesServiceRequest(
                    request.OfferId, request.DiscountCode, request.Keyword, request.ActiveDate, request.QueryResultSettings);

                // Execute service request.
                var serviceResponse = this.Context.Execute <GetDiscountCodesServiceResponse>(serviceRequest);

                // If no discount codes were found then attempt the search again using Barcode
                if (serviceResponse.DiscountCodes != null && serviceResponse.DiscountCodes.Results.Count == 0)
                {
                    var scanInfo = new ScanInfo()
                    {
                        ScannedText = request.Keyword
                    };
                    var barcodeRequest = new GetBarcodeRequest(scanInfo);
                    GetBarcodeResponse getBarcodeResponse = this.Context.Runtime.Execute <GetBarcodeResponse>(barcodeRequest, this.Context);
                    Barcode            barcode            = getBarcodeResponse.Barcode;
                    if (barcode != null && barcode.Mask.MaskType == BarcodeMaskType.DiscountCode)
                    {
                        var getDiscountCodesByBarcodeServiceRequest = new GetDiscountCodesServiceRequest(
                            request.OfferId, barcode.DiscountCode, null, request.ActiveDate, request.QueryResultSettings);
                        serviceResponse = this.Context.Execute <GetDiscountCodesServiceResponse>(getDiscountCodesByBarcodeServiceRequest);
                    }
                }

                // Convert service response to response.
                return(new GetDiscountCodesResponse(serviceResponse.DiscountCodes));
            }
コード例 #2
0
ファイル: Discount.cs プロジェクト: siva497/AX7v2RetailSDK
            /// <summary>
            /// Gets the discount codes with offer id, or keyword, or get all if none specified.
            /// </summary>
            /// <param name="request">The request.</param>
            /// <returns>The discount codes.</returns>
            public GetDiscountCodesServiceResponse GetDiscountCodes(GetDiscountCodesServiceRequest request)
            {
                if (request == null)
                {
                    throw new ArgumentNullException("request");
                }

                if (request.RequestContext == null)
                {
                    throw new ArgumentException("request.RequestContext is not set", "request");
                }

                IEnumerable <DiscountCode> discountCodes =
                    this.pricingDataManager.GetDiscountCodes(request.OfferId, request.DiscountCode, request.Keyword, request.ActiveDate);

                return(new GetDiscountCodesServiceResponse(discountCodes.AsPagedResult()));
            }
コード例 #3
0
            /// <summary>
            /// Gets the discount codes.
            /// </summary>
            /// <param name="request">The request.</param>
            /// <returns>The response object.</returns>
            private static GetDiscountCodesServiceResponse GetDiscountCodes(GetDiscountCodesServiceRequest request)
            {
                var service = Discount.Create(request.RequestContext);

                return(service.GetDiscountCodes(request));
            }