/// <summary> /// Validates the address. /// </summary> /// <param name="shippingRequest">The shipping request.</param> /// <returns>The response.</returns> /// <remarks>Throws an exception if the address field in the request is null.</remarks> private static ValidateShippingAddressServiceResponse ValidateShippingAddress(ValidateShippingAddressServiceRequest shippingRequest) { if (shippingRequest.AddressToValidate == null) { throw new ArgumentNullException("shippingRequest", "shippingRequest.AddressToValidate"); } if (shippingRequest.DeliveryModeId == null) { throw new ArgumentNullException("shippingRequest", "shippingRequest.DeliveryModeId"); } var dataServiceRequest = new GetShippingAdapterConfigurationDataRequest(new[] { shippingRequest.DeliveryModeId }, QueryResultSettings.AllRecords); var dataServiceResponse = shippingRequest.RequestContext.Execute <EntityDataServiceResponse <ShippingAdapterConfig> >(dataServiceRequest); var shippingAdapterConfigLines = dataServiceResponse.PagedEntityCollection.Results; ParameterSet adapterConfig = ExtractAdapterConfigForSpecificDeliveryMode(shippingRequest.DeliveryModeId, shippingAdapterConfigLines); var carrierServiceRequest = new ValidateShippingAddressCarrierServiceRequest(adapterConfig, shippingRequest.AddressToValidate, shippingRequest.SuggestAddress); IRequestHandler carrierAdapterHandler = GetCarrierAdapterService(shippingRequest.RequestContext, carrierServiceRequest.GetType(), adapterConfig); bool isAddressValid = true; IEnumerable <Address> addressSuggestions = null; if (carrierAdapterHandler != null) { // Call the adapter's validation method var carrierServiceResponse = shippingRequest.RequestContext.Runtime.Execute <ValidateShippingAddressCarrierServiceResponse>(carrierServiceRequest, shippingRequest.RequestContext, carrierAdapterHandler); isAddressValid = carrierServiceResponse.IsAddressValid; addressSuggestions = carrierServiceResponse.RecommendedAddresses; } else { NetTracer.Warning("No registered shipping carrier is found."); } return(new ValidateShippingAddressServiceResponse(isAddressValid, addressSuggestions)); }
private static ValidateShippingAddressCarrierServiceResponse ValidateShippingAddress(ValidateShippingAddressCarrierServiceRequest request) { // Implement the webservice to call to validate the address. bool isValid = true; return(new ValidateShippingAddressCarrierServiceResponse(isValid, new Collection <Address>())); }