Ejemplo n.º 1
0
            /// <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);
                    }
                }
            }
Ejemplo n.º 2
0
            /// <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);
            }