Example #1
0
        public void OnExecuting(Request request)
        {
            SaveCartVersionedDataRequest r = (SaveCartVersionedDataRequest)request;

            if (r.SalesTransaction != null && r.SalesTransaction.ActiveSalesLines.Count > 0)
            {
                // active lines - voided lines, aggregate them over ProductId
                var productQuanityPairs = r.SalesTransaction.ActiveSalesLines.Where(asl => !asl.IsVoided).GroupBy(cl => new { cl.ProductId }).Select(group => new Tuple <long, decimal>(group.Key.ProductId, group.Sum(i => i.Quantity)));

                InventoryRequestHelper.ValidateOnHandQuantities(productQuanityPairs, request.RequestContext);
            }
        }
            public void OnExecuting(Request request)
            {
                if (request is SaveCartVersionedDataRequest)
                {
                    SaveCartVersionedDataRequest saveCartVersionedDataRequest = request as SaveCartVersionedDataRequest;

                    DeviceConfiguration deviceConfiguration = request.RequestContext.GetDeviceConfiguration();

                    if (request.RequestContext.GetDeviceConfiguration().EnableAxCustomerSearch == true &&
                        !string.IsNullOrEmpty(saveCartVersionedDataRequest.SalesTransaction.CustomerId) &&
                        string.IsNullOrEmpty(saveCartVersionedDataRequest.SalesTransaction.LoyaltyCardId))
                    {
                        InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest("GetCustomerLoyaltyCard",
                                                                                                                         saveCartVersionedDataRequest.SalesTransaction.CustomerId,
                                                                                                                         request.RequestContext.GetChannelConfiguration().InventLocationDataAreaId);

                        InvokeExtensionMethodRealtimeResponse extensionResponse = request.RequestContext.Execute <InvokeExtensionMethodRealtimeResponse>(extensionRequest);
                        ReadOnlyCollection <object>           results           = extensionResponse.Result;

                        string loyalyCardNumber = (string)results[0];
                        saveCartVersionedDataRequest.SalesTransaction.LoyaltyCardId = loyalyCardNumber;
                    }
                }
            }