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; } } }