Esempio n. 1
0
        public virtual string GetStoreUrl(GetStoreUrlParam parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }
            if (string.IsNullOrWhiteSpace(parameters.BaseUrl))
            {
                throw new ArgumentException(GetMessageOfNullWhiteSpace(nameof(parameters.BaseUrl)), nameof(parameters));
            }
            if (string.IsNullOrWhiteSpace(parameters.StoreNumber))
            {
                throw new ArgumentException(GetMessageOfNullWhiteSpace(nameof(parameters.StoreNumber)), nameof(parameters));
            }
            if (parameters.CultureInfo == null)
            {
                throw new ArgumentException(GetMessageOfNull(nameof(parameters.CultureInfo)), nameof(parameters));
            }
            // Because of ConfigureAwait(false), we lost context here.
            // Therefore we need to re-initialize C1 context because getting the Url.
            using (ThreadDataManager.EnsureInitialize())
            {
                var pagesConfiguration = SiteConfiguration.GetPagesConfiguration(parameters.CultureInfo, WebsiteContext.WebsiteId);
                if (pagesConfiguration == null)
                {
                    return(null);
                }

                var baseUrl = PageService.GetPageUrl(pagesConfiguration.StoreListPageId, parameters.CultureInfo);

                var url        = string.Format(UrlTemplate, baseUrl, UrlFormatter.Format(parameters.StoreName), parameters.StoreNumber);
                var urlBuilder = new UrlBuilder(url);
                return(urlBuilder.ToString());
            }
        }
Esempio n. 2
0
        public virtual string GetStoreUrl(GetStoreUrlParam parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }
            if (string.IsNullOrWhiteSpace(parameters.BaseUrl))
            {
                throw new ArgumentException(GetMessageOfNullWhiteSpace(nameof(parameters.BaseUrl)), nameof(parameters));
            }
            if (parameters.CultureInfo == null)
            {
                throw new ArgumentException(GetMessageOfNull(nameof(parameters.CultureInfo)), nameof(parameters));
            }

            var storePath = string.Format(UrlTemplate,
                                          parameters.CultureInfo.Name,
                                          LocalizationProvider.GetLocalizedString(new GetLocalizedParam
            {
                Category    = ResourceCategory,
                Key         = "Stores_Url",
                CultureInfo = parameters.CultureInfo
            }),
                                          parameters.StoreNumber,
                                          UrlFormatter.Format(parameters.StoreName));

            var uri = new Uri(storePath, UriKind.Relative);

            return(uri.ToString());
        }
 private void Assert(GetStoreUrlParam parameters)
 {
     if (parameters == null)
     {
         throw new ArgumentNullException("parameters");
     }
     if (string.IsNullOrWhiteSpace(parameters.BaseUrl))
     {
         throw new ArgumentException(ArgumentNullMessageFormatter.FormatErrorMessage("BaseUrl"), "parameters");
     }
     if (parameters.CultureInfo == null)
     {
         throw new ArgumentException(ArgumentNullMessageFormatter.FormatErrorMessage("CultureInfo"), "parameters");
     }
 }
        public virtual string GetStoreUrl(GetStoreUrlParam parameters)
        {
            Assert(parameters);

            var storePath = string.Format(UrlTemplate,
                                          parameters.CultureInfo.Name,
                                          LocalizationProvider.GetLocalizedString(new GetLocalizedParam
            {
                Category    = ResourceCategory,
                Key         = "Stores_Url",
                CultureInfo = parameters.CultureInfo
            }),
                                          parameters.StoreNumber,
                                          UrlFormatter.Format(parameters.StoreName));

            var uri = new Uri(storePath, UriKind.Relative);

            return(uri.ToString());
        }
Esempio n. 5
0
        public virtual string GetStoreUrl(GetStoreUrlParam parameters)
        {
            Assert(parameters);
            // Because of ConfigureAwait(false), we lost context here.
            // Therefore we need to re-initialize C1 context because getting the Url.
            using (ThreadDataManager.EnsureInitialize())
            {
                var pagesConfiguration = SiteConfiguration.GetPagesConfiguration(parameters.CultureInfo, WebsiteContext.WebsiteId);
                if (pagesConfiguration == null)
                {
                    return(null);
                }

                var baseUrl = PageService.GetPageUrl(pagesConfiguration.StoreListPageId, parameters.CultureInfo);

                var url        = string.Format(UrlTemplate, baseUrl, UrlFormatter.Format(parameters.StoreName), parameters.StoreNumber);
                var urlBuilder = new UrlBuilder(url);
                return(urlBuilder.ToString());
            }
        }
        public void WHEN_invalid_parameter_SHOULD_throw_ArgumentException(string baseUrl, string storeNumber,
                                                                          string storeName, string culture)
        {
            //Arrange
            var sut         = _container.CreateInstance <StoreUrlProvider>();
            var cultureInfo = string.IsNullOrWhiteSpace(culture) ? null : CultureInfo.GetCultureInfo(culture);

            var sp = new GetStoreUrlParam
            {
                BaseUrl     = baseUrl,
                CultureInfo = cultureInfo,
                StoreNumber = storeNumber,
                StoreName   = storeName
            };

            //Act
            var action = new Action(() => sut.GetStoreUrl(sp));

            //Assert
            action.ShouldThrow <ArgumentException>();
        }
        public void WHEN_parameters_are_valid_SHOULD_return_expected_result(string baseUrl, string culture,
                                                                            string storeNumber, string storeName, string expectedUrl)
        {
            //Arrange
            var sut         = _container.CreateInstance <StoreUrlProvider>();
            var cultureInfo = string.IsNullOrWhiteSpace(culture) ? null : CultureInfo.GetCultureInfo(culture);

            var sp = new GetStoreUrlParam
            {
                BaseUrl     = baseUrl,
                CultureInfo = cultureInfo,
                StoreNumber = storeNumber,
                StoreName   = storeName
            };

            //Act
            var relativeUrl = sut.GetStoreUrl(sp);
            var url         = string.Concat(baseUrl, relativeUrl);

            //Assert
            url.Should().BeEquivalentTo(expectedUrl);
        }