示例#1
0
            private GetCountryRegionDataResponse GetCountryRegion(GetCountryRegionDataRequest request)
            {
                ThrowIf.Null(request.QueryResultSettings, "settings");

                string languageId = request.LanguageId;

                if (string.IsNullOrWhiteSpace(languageId))
                {
                    var getDefaultLanguageIdDataRequest = new GetDefaultLanguageIdDataRequest();
                    languageId = request.RequestContext.Runtime.Execute <SingleEntityDataServiceResponse <string> >(getDefaultLanguageIdDataRequest, request.RequestContext).Entity;
                }

                var parameterSet = new ParameterSet();

                parameterSet["nvc_LanguageId"] = languageId;

                Tuple <PagedResult <CountryRegionInfo>, ReadOnlyCollection <AddressFormattingInfo> > countryRegions;

                using (SqlServerDatabaseContext sqlServerDatabaseContext = new SqlServerDatabaseContext(request))
                {
                    countryRegions = sqlServerDatabaseContext.ExecuteStoredProcedure <CountryRegionInfo, AddressFormattingInfo>(GetCountryRegionInfoSprocName, parameterSet);
                }

                return(new GetCountryRegionDataResponse(countryRegions.Item1, countryRegions.Item2));
            }
            /// <summary>
            /// Gets the default language id for the channel.
            /// </summary>
            /// <param name="context">The request context.</param>
            /// <returns>Language identifier.</returns>
            private static string GetDefaultLanguageId(RequestContext context)
            {
                var    getDefaultLanguageIdDataRequest = new GetDefaultLanguageIdDataRequest();
                string defaultLanguageId = context.Runtime.Execute <SingleEntityDataServiceResponse <string> >(getDefaultLanguageIdDataRequest, context).Entity;

                return(defaultLanguageId);
            }
            /// <summary>
            /// Initializes a new instance of the <see cref="CountryRegionMapper"/> class.
            /// </summary>
            /// <param name="context">The request context.</param>
            public CountryRegionMapper(RequestContext context)
            {
                if (context == null)
                {
                    throw new ArgumentNullException("context");
                }

                GetDefaultLanguageIdDataRequest languageIdRequest = new GetDefaultLanguageIdDataRequest();
                string languageId = context.Execute <SingleEntityDataServiceResponse <string> >(languageIdRequest).Entity;
                GetCountryRegionDataRequest countryRequest = new GetCountryRegionDataRequest(languageId)
                {
                    QueryResultSettings = QueryResultSettings.AllRecords
                };

                var response = context.Execute <GetCountryRegionDataResponse>(countryRequest);

                IEnumerable <CountryRegionInfo> countryRegions = response.CountryRegionInfo.Results;

                this.mapCountryRegionToIsoCode = countryRegions.ToDictionary(key => key.CountryRegionId, value => value.ISOCode);
                this.mapIsoCodeToCountryRegion = countryRegions.ToDictionary(key => key.ISOCode, value => value.CountryRegionId);
            }