/// <summary> /// Validates the get address info requests. /// </summary> /// <param name="request">The request.</param> private static void ValidateGetAddressInfoRequests(GetAddressInfoServiceRequest request) { ServicesHelper.ValidateInboundRequest(request); // ensure all required filters are given. foreach (var filterName in GetMandatoryFilterNames(request)) { if (request.Filters[filterName] == null || string.IsNullOrWhiteSpace(request.Filters[filterName].ToString())) { string errorMessage = string.Format(CultureInfo.CurrentCulture, "Empty filter specified: {0} is required to call the API.", filterName); throw new DataValidationException(DataValidationErrors.Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound, errorMessage); } } }
/// <summary> /// Gets the mandatory filter names. /// </summary> /// <param name="request">The request.</param> /// <returns> /// List of mandatory filter names. /// </returns> private static IEnumerable <string> GetMandatoryFilterNames(GetAddressInfoServiceRequest request) { Collection <string> filterNames = new Collection <string>(); if (request is GetCountryRegionsServiceRequest) { // languageId is required filterNames.Add(AddressServiceConstants.LanguageIdSqlParameter); } else { // countryregionId is mandatory filterNames.Add(AddressServiceConstants.CountryRegionId); // for GetFromZipPostalCodeRequesty both ZipCode and countryRegionId is required. if (request is GetFromZipPostalCodeServiceRequest) { filterNames.Add(AddressServiceConstants.ZipCode); } } return(filterNames); }